Skip to main content

Using Course Data

First, you'll need instructions and access to course data. Then, you can proceed.

All course data is stored in a series of quite large minified JSON files. One JSON file holds the latest plan data (around 2 MB - 3 MB), and each term (quarter) available to Paper has a JSON file with the term-specific schedule data (each around 3 MB - 4 MB). While schedule data files doesn't include all of the course data like the plan data file does, schedule data files tend to be larger since they can include paragraphs of descriptions provided by instructors.

There is currently no standalone conversion tool available to convert the JSON files into a more usable format. Instead, you'll need to use the tables below to understand the structure of these files.

You can see these conversions being made here in the Paper source code.

Subject data

The following are the keys of the root object of the subject data.

  • subjects - A map of all subject data.
    • key: the subject code (ex. COMP_SCI)
    • value: information on the subject relevant to Paper
ShortLongType
subjectssubjects{ [subject]: SubjectInformation }

Plan data

The following are the keys of the root object of the plan data.

  • courses - An array of all current courses.
  • legacy - An array of old courses that used to be included in the data from the registrar but no longer are. This is important in case a user has a plan that includes one of these courses back when it may have been offered.
ShortLongType
coursescoursesPlanCourse[]
legacylegacyPlanCourse[]

Schedule data

The schedule data consists of an array of ScheduleCourse.

Type Reference

Many properties in these types will not always exist. I highly recommend null checking every one.

SubjectInformation

in subject data

ShortLongTypeDescription
ccolorColorStringthe color of the subject
dfull namestringthe full name of the subject
sschoolsstring[]the schools the subject is offered in

PlanCourse

in plan data

ShortLongTypeDescription
iidstringthe subject and catalog number of the course
nnamestringthe name of the course
uunitsstringthe number of units the course is worth
rrepeatablebooleanwhether the course is repeatable
ddescriptionstringthe description of the course
pprerequisitesstringthe prerequisites of the course
sdistribution areasDistrosStringthe distribution areas that the course fulfills
ffoundational disciplinesDisciplinesStringthe foundational disciplines that the course fulfills
cschoolstringthe school the course is in
lplaceholderbooleanwhether the course is a placeholder
ttermsstring[]the terms IDs of when the course has been offered in the past

ScheduleCourse

in schedule data

ShortLongTypeDescription
icourse idstringthe course ID number provided by NU
cschoolstringthe school the course is in
ttitlestringthe name of the course
usubjectstringthe subject of the course
ncatalog numberstringthe catalog number of the course
ssectionsScheduleSection[]the sections of the course

ScheduleSection

in ScheduleCourse

ShortLongTypeDescription
isection idstringthe course ID number provided by NU with a section number
rinstructorsSectionInstructor[]the instructors of the section
ttitlestringthe name of the course
ktopicstringthe topic of the section
usubjectstringthe subject of the course
ncatalog numberstringthe catalog number of the course
ssection numberstringthe section number of the section
mmeeting days(MeetingDaysString | null)[]the meeting days for each time slot of the section
xstart time(Time | null)[]the start time of the section
yend time(Time | null)[]the end time of the section
lroomstring[]the location of the section
dstart datestringthe start date of the section
eend datestringthe end date of the section
ccomponentstringthe component of the section
acapacityintthe capacity of the section
qenrollment requirementsstringthe enrollment requirements of the section
pdescriptionsSectionDescription[]the descriptions of the section
odistribution areasDistrosStringthe distribution areas that the section fulfills
ffoundational disciplinesDisciplinesStringthe foundational disciplines that the section fulfills

SectionInstructor

in ScheduleSection

ShortLongTypeDescription
nnamestringthe name of the instructor
pphonestringthe phone number of the instructor
acampus addressstringthe campus address of the instructor
ooffice hoursstringthe office hours of the instructor
bbiostringthe bio of the instructor
uurlstringthe URL of the instructor

Time

in ScheduleSection

ShortLongTypeDescription
hhourinthour from 0 to 23
mminuteintminute from 0 to 59

DistrosString

in PlanCourse and ScheduleSection

A DistrosString is a normal string where each character represents a distribution area.

CharacterDistribution Area
1Natural Sciences
2Formal Studies
3Social and Behavioral Sciences
4Historical Studies
5Ethics and Values
6Literature and Fine Arts
7Interdisciplinary Studies

For example, the string "14" means both the Natural Studies and Historical Studies distribution areas are linked to the course.

DisciplinesString

in PlanCourse and ScheduleSection

A DisciplinesString is a normal string where each character represents a foundational discipline.

CharacterDistribution Area
1Natural Sciences
2Empirical and Deductive Reasoning
3Social and Behavioral Sciences
4Historical Studies
5Ethical and Evaluative Thinking
6Literature and Arts
7Interdisciplinary

For example, the string "14" means both the Natural Studies and Historical Studies foundational disciplines are linked to the course.

MeetingDaysString

in ScheduleSection

A MeetingDaysString is a normal string where each character represents a day of the week.

CharacterDay of the Week
0Monday
1Tuesday
2Wednesday
3Thursday
4Friday

For example, the string "024" means the section includes a repeated meeting time on Monday, Wednesday, and Friday.

SectionDescription

in ScheduleSection

A SectionDescription is an array of strings (string[]). The first element is the description title. The second element is the description value.

For example, a section may have the following SectionDescription[] value:

[
[
"Overview",
"This is an overview of this class. Blah blah blah words here words there and so on."
],
[
"Class Materials",
"You'll need this textbook and this calculator and this device and so on."
]
]

ColorString

in SubjectInformation

A ColorString is a string that equals one of the following:

  • red
  • orange
  • amber
  • yellow
  • lime
  • green
  • emerald
  • teal
  • cyan
  • sky
  • blue
  • indigo
  • violet
  • purple
  • fuchsia
  • pink
  • rose
  • gray