aspen-api
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

aspen-api

An API client library for interacting with Aspen, a Student Information System (SIS) created by Follett and used in schools around the U.S.

This package is a work-in-progress. Some features may be missing or not fully fleshed-out!

Installation

aspen-api can be installed from NPM with your node package manager of choice:

npm install aspen-api
yarn install aspen-api
pnpm install aspen-api

Note: aspen-api is ESM, rather than CommonJS. That means that if you want to use it in a project written in CommonJS, you need to either convert your project to ESM, or use the import() function.

Usage

You can access Aspen through a single class. You need to initiate it using your 'district ID.' All Aspen instances are hosted at a subdomain of myfollett.com, though some districts might have students use a different domain, for example, aspen.dcps.dc.gov -> dcps.myfollett.com.

import Aspen from "aspen-api";

const aspen = new Aspen("dcps");

Once you've created an Aspen object, you need to log in:

// store your login however you want!
const username = process.env.USERNAME
const password = process.env.PASSWORD

await aspen.login({ username, password })

API

Aspen

Everything in aspen-api is stored in a central Aspen class.

constructor(id: string, cookies? Cookie[])

Constructs a new Aspen object. The id is the subdomain of <id>.myfollett.com. Cookies can be passed in using an array of Cookie objects. aspen-api uses tough-cookie for managing cookies. If you want to save an Aspen session and reconstruct it later, this is the recommended way to do it.

import Aspen from "aspen-api";

const aspen = new Aspen("dcps");

login(options: { username: string, password: string })

Returns: Promise<null>

// store your login however you want!
const username = process.env.USERNAME;
const password = process.env.PASSWORD;

await aspen.login({ username, password });

getClasses()

Returns: Promise<ClassInfo[]>

Gets a list of all the classes, along with info about them.

const classes = await aspen.getClasses();

getClass(token: string)

Returns: Promise<ClassData>

Gets data about a class, including grades. The token is a sort of identifier for the class, it comes in the data from the getClasses function.

// grab this earlier from getClasses()
const token = // ...

const mathClass = await getClass(token);

getAssignments(token: string)

Returns: Promise<Assignment[]>

Gets the list of assignments from a class.

// grab this earlier from getClasses()
const token = // ...

const mathAssignments = await getAssignments(token);

getSchedule()

Returns: Promise<Schedule>

Gets the current schedule of the current student.

getCookies()

Returns: Promise<Cookie[]>

Gets a list of all the stored cookies.

Types

See types.ts.

Readme

Keywords

none

Package Sidebar

Install

npm i aspen-api

Weekly Downloads

1

Version

1.1.2

License

ISC

Unpacked Size

33.8 kB

Total Files

6

Last publish

Collaborators

  • gusruben