/UofT-Course-API

An API wrapper written with Node.js that enables developers to easily interact with the University of Toronto's API to display course information.

Primary LanguageJavaScript

UofT-Course-API

npm version build status

An API wrapper written in Node.js that enables developers to easily interact with the University of Toronto's API to display course information.

Usage

URL

``` https://uoft-course-api.herokuapp.com/ ```

Parameters

At least one parameter is required in order to retrieve a valid response.

Department(s)

` org `

Example: Select Anthropology or type at least the first 3 characters. You can select up to 3 departments (ex. org=csc,ece)

Course Code

` code `

Example: Select Anthropology or type at least the first 3 characters.

Session(s)

` section `

Example: F (Fall), S (Winter),Y (both sessions) which refer to term.

Course Level(s)

` studyyear `

Courses will be shown based on year(s) selected

Instructor's Last Name

` prof `

Enter any part of the last name. Please be aware that Instructor(s) details may change

Time(s)

` daytime `

Filter time of day: AM, PM, EVE

Day(s) of Week

` weekday `

Filter by specific day(s) of the week: MO,TU,WE,TH,FR

Breadth Requirement(s)

` breadth `

Filter by degree breadth requirements: 1,2,3,4,5

Only Online Courses

` online `

Retrieve online courses only: t

Only Courses with Wait List Option

` waitlist `

Retrieve only the courses that have a wait list option available if the course becomes full: t

Only Meeting Sections with Space

` available `

Retrieve meeting sections that have space available for enrolment: t

Course Title

` title `

Enter any part of the course title or subtitle

Example Request

``` https://uoft-course-api.herokuapp.com/courses?org=csc&studyyear=3&breadth=3&weekday=WE ```

Response Format

``` { String: { "courseId": String, "org": String, "orgName": String, "courseTitle": String, "code": String, "courseDescription": String, "prerequisite": String, "corequisite": String, "exclusion": String, "recommendedPreparation": String, "section": String, "session": String, "webTimetableInstructions": String, "breadthCategories": String, "distributionCategories": String, "meetings": { String: { "schedule": { String: { "meetingDay": String, "meetingStartTime": String, "meetingEndTime": String, "meetingScheduleId": String, "assignedRoom1": String, "assignedRoom2": String } }, "instructors": { String: { "instructorId": String, "firstName": String, "lastName": String } }, "meetingId": String, "teachingMethod": String, "sectionNumber": String, "subtitle": String, "cancel": String, "waitlist": String, "online": String, "enrollmentCapacity": String, "actualEnrolment": String, "actualWaitlist": String, "enrollmentIndicator": String, "meetingStatusNotes": String, "enrollmentControls": [ { "postId": String, "postCode": String, "postName": String, "subjectId": String, "subjectCode": String, "subjectName": String, "designationId": String, "designationCode": String, "designationName": String, "yearOfStudy": String, "typeOfProgramId": String, "typeOfProgramCode": String, "typeOfProgramName": String, "primaryOrgId": String, "primaryOrgCode": String, "primaryOrgName": String, "secondaryOrgId": String, "secondaryOrgCode": String, "secondaryOrgName": String, "assocOrgId": String, "assocOrgCode": String, "assocOrgName": String, "adminOrgId": String, "adminOrgCode": String, "adminOrgName": String } ] } } } } ```