1.0.0 • Published 4 years ago

teachassist v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

TeachAssist

teachassist authenticates with the YRDSB TeachAssist website for student course information.

Installation

$ npm install teachassist

Example Usage

const {Student} = require("teachassist");
// No HTTP requests are done at this time.
const me = new Student("my_username", "my_password");

// Attempts to authenticate and extract list of courses.
me.getCourses().then(async (courses) => {
  for (const course of courses) {
    console.log(`Student is taking ${course.name} in room ${course.room} and has a ${course.grade}%.`);
  }
  // Attempts to get individual assignment data for first course.
  const marks = await me.getMarks(courses[0].id);
  for (const mark of marks) {
    console.log(`Student got ${mark.earned[0]}/${mark.total[0]} K/U marks on ${mark.name}.`);
  }
  // Attemps to get course weightings for first course.
  const weights = await me.getMeta(courses[0].id);
  console.log(`Knowledge and Understanding is worth ${weights.weight.KU}% excluding finals.`);
  console.log(`Thinking and inquiry is worth ${weights.cWeight.TI}% including finals.`);
});

Documentation

Student

Represents a student with a YRDSB TeachAssist login.

<Student>.courses: Array of loaded courses for student. Empty until <Student>.getCourses() is called.

Constructor

username: Login username of the student.
password: Login password of the student.

generateSession()

Obtain and store a session token that can be used to access course information. Expires after 10 minutes. Does nothing if existing token is valid.
All methods that require a token automatically call generateSessions() if needed.

Returns: Promise::boolean true if a new token was generated, false otherwise.

getCourses()

Obtain an array of Course objects representing the courses this student is currently taking. This populates the courses property.

Returns: Promise::Array::Course

getMarks(courseID)

courseID: ID of course to get marks for. This is not the name of the course.

Obtain an array of all individual assignments for the given course.

Returns: Promise::Array::Mark

getMeta(courseID)

courseID: ID of course to get marks for. This is not the name of the course.

Obtain the weightings of each category for the given course.

Returns: Promise::Weight

Course

Represents a course being taken by a student.

<Course>.student The student object that is taking this course.
<Course>.marks Array of loaded assignment data for this course. Empty until <Student>.getMarks(courseID) is called.
<Course>.meta Loaded course weightings for this course. Undefined until <Student>.getMeta(courseID) is called.

Mark

Represents an individual assignment for a course.

<Mark>.name Name of this assignment.
<Mark>.earned Array representing number of marks earned for each category in order: KU, TI, COMM, APP, OTHER.
<Mark>.total Array representing number of total marks for each category in order: KU, TI, COMM, APP, OTHER.
<Mark>.weight Array representing numerical weightings for each category in order: KU, TI, COMM, APP, OTHER.

Quantities for earned, total, and weight can also be accessed as properties with .KU, .TI, .COMM, .APP, and .OTHER respectively.

static getStringType(type)

type: Number representation of mark type.

Returns: String KU for 0, TI for 1, COMM for 2, APP for 3, OTHER for 4.

Weight

Represents course weightings for each category.

<Weight>.weight Array of percentage weights for each category before finals in order: KU, TI, COMM, APP, OTHER.
<Weight>.cWeight Array of percentage weights for each category including finals in order: KU, TI, COMM, APP, OTHER.
<Weight>.final Percentage the final is worth overall in the course.

Quantities for weight and cWeight can also be accessed as properties with .KU, .TI, .COMM, .APP, and .OTHER respectively.