1.1.1 • Published 11 months ago

bps-aspen v1.1.1

Weekly downloads
-
License
GPL-3.0-only
Repository
github
Last release
11 months ago

Aspen-SIS (Boston Public Schools)

An API library to interact with the Boston Public Schools version of Follett's Aspen Student Information system (SIS)

⚠️ Note

The package uses Puppeteer (and a version of Chromium with Puppeteer) to fetch the data. Due to web restrictions, this package should only be used on the server side of applications.

Additionally, some of the built-in Session functions (such as schedules) are not a one-size-fits-all for BPS students. Due to this, it has been designed with the 7-period 5-day schedule at Boston Latin Academy.

⬇️ Installation

Install the package on NPM using the package manager of your choice:

npm install bps-aspen
yarn add bps-aspen
pnpm add bps-aspen

🛠️ Usage

The package uses a Session to fetch data from a specific student. Upon creating a Session instance, you can call various methods on the session in order to fetch different pieces of data.

Here are a couple of key methods:

Session.login(id: string, password: string): Promise<Session>

Performs a login request to Aspen to fetch data. Returns a promise that resolves with the Session itself to enable chaining of methods.

⚠️ NOTE: This method is required before performing any other operation on the session.

Session.getStudentInfo(): Promise<Student>

Fetches a student profile from the logged in session. Returns a Promise that resolves with the student's key information (such as email, name, and student ID).

💡 Example

For this example, user credentials are passed in from a .env file. However, the login credentials can come in the form of an HTTP request or anything akin to that.

import 'dotenv/config.js';

import { Session } from 'bps-aspen/dist';

(async function () {
  const aspen = new Session();
  await aspen.login(process.env.STUDENT_ID, process.env.PASSWORD);
  cont profile = await aspen.getStudentInfo();
  return aspen; 
})().then((aspen) => aspen.exit().catch());
1.1.1

11 months ago

1.1.0

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago