Skip to content
This repository was archived by the owner on Oct 11, 2023. It is now read-only.

Class Schedule Web API

Shawn South edited this page Jan 16, 2014 · 5 revisions

Beginning with Version 2 the CTC Class Schedule includes a read-only web API that can be used to request class data in the JSON format. Do make such a call, simply include a format parameter of json with the GET request. For example,

http://bellevuecollege.edu/classes/All/ABE/?format=json

returns the same information as

http://bellevuecollege.edu/classes/All/ABE/

but as a JSON data set instead of an HTML document.

Most pages in the CTC Class Schedule support retrieving class data as JSON in this manner.

API calls

The following sections document the JSON data that is returned by the various API calls.

All course subjects (no specific quarter)

URL: http://bellevuecollege.edu/classes/All/?format=json

Returns: Course catalog information (i.e. list of subjects) currently being offered by the college.

  • CurrentQuarter: YearQuarter

    The current quarter - calculated based on the current date.

  • Subjects: Subject []

    An array of course subjects.

  • NavigationQuarters: YearQuarter

    Array of available quarters. See NavigationQuarters for more detail.

  • LettersList: string []

    Array of letters for which subjects are available. Used primarily in construction UI navigation. Passing a query parameter of letter=X (where X is the letter to filter by) will return only subjects beginning with that letter.

  • ViewingLetter: string

    If a letter was specified in the HTTP call, this will contain that letter, for reference.

Courses for a given subject (no specific quarter)

URL: http://bellevuecollege.edu/classes/All/ slug /?format=json

Returns: Course catalog information for the specified slug (e.g. ENGL, ART, PE). Frequently, the slug will be the same as the associated course subject, but in some cases a slug may apply to more than one subject.

  • CurrentQuarter: YearQuarter

    The current quarter - calculated based on the current date.

  • Courses: Course []

    An array of courses for the requested subject.

    • CourseID: string

      A unique value that defines the course of study. (e.g. ENGL 101)

    • Subject: string

      The abbreviated subject code for the course. Typically, the left-hand value in the CourseID. (e.g. ENGL) In most cases, the subject will be the same as the slug, but there is no requirement that this be the case. Use subject when displaying content to the user and the slug when constructing URLs.

    • Number: string

      The right-hand value of the CourseID. (e.g. 101)

    • Title: string

      The one-line title of the course.

    • Descriptions: Description []

      An array containing the current and any future descriptions of the course. The first item in the array is the currently-active description (for the CurrentQuarter) and each additional item is the next description to take effect.

    • Credits: decimal

      The number of credits that will be earned upon completing the course. Alternatively, this value can indicate the maximum number of credits that can be earned - see IsVariableCredits.

    • YearQuarterBegin: YearQuarter

      The quarter in which the course began/begins being offered.

    • YearQuarterEnd: YearQuarter

      The quarter in which the course ends/ended. If this value is [maximum] then no ending quarter was specified.

    • IsCommonCourse: bool

      When true, indicates that the course meets the Common Course Numbering requirements.

    • IsVariableCredits: bool

      When true, the number of credits that can be earned for the course is 1 - Credits.

    • Footnotes: string []

      Footnotes provide additional meta information of interest to prospective students. For example: additional requirements, fees, etc.

  • NavigationQuarters: YearQuarter

    Array of available quarters. See NavigationQuarters for more detail.

  • Slug: string

  • SubjectTitle: string

  • SubjectIntro: string

  • DepartmentTitle: string

  • DepartmentURL: url

Course subjects offered for a given quarter

URL: http://bellevuecollege.edu/classes/ quarter /?format=json

Returns: List of subjects offering courses for the quarter (one of "Summer", "Fall", "Winter" or "Spring" followed by a 4-digit year, with no spaces - e.g. Fall2013):

Sections offered for a given subject and quarter

URL: http://bellevuecollege.edu/classes/ quarter / subject /?format=json

Returns: Class offerings for the quarter (one of "Summer", "Fall", "Winter" or "Spring" followed by a 4-digit year, with no spaces - e.g. Fall2013) and subject specified (e.g. ENGL, ART, PE):

  • Courses: Course[]
    • Sections: Section[]
      • SeatsAvailable: int
      • SeatsLastUpdated: string (datetime)
      • LastUpdated: string (time)
      • LastUpdatedBy: string
      • CourseFootnotes: string
      • SectionFootnotes: string
      • CustomDescription: string
      • CourseTitle: string
      • ID:
        • ItemNumber: string
        • YearQuarter: string (YRQ ID)
      • IsCrossListed: bool
      • ?? ID ??
      • CourseSubject: string
      • CourseNumber: string
      • CourseDescriptions: Description []
      • Yrq: YearQuarter
      • StartDate: datetime
      • EndDate: datetime
      • IsOnline: bool
      • IsOnCampus: bool
      • IsTelecourse: bool
      • IsHybrid: bool
      • IsContinuousEnrollment: bool
      • IsVariableCredits: bool
      • IsDifferentStartDate: bool
      • IsLinked: bool
      • LinkedTo: string (item number)
      • IsDifferentEndDate: bool
      • SectionCode: string (A)
      • Footnotes: string []
      • CourseID: string
      • IsCommonCourse: bool
      • Credits: decimal
      • Offered: []
        • ID: guid
        • Days: string (MW)
        • StartTime: datetime
        • EndTime: datetime
        • InstructorID: string (SID)
        • InstructorName: string
        • InstructorEmail: string
        • Room: string
        • IsPrimary: bool
        • SequenceOrder: number
      • WaitlistCount: number
      • LastRegistrationDate: datetime
    • LinkedSections: string (?) []
    • CommonFootnotes: string []
    • IsCrosslisted: bool

Common structures

NavigationQuarters

An array of YearQuarters representing the "current" and previous quarters. The term current quarter can have many different meanings depending on context. In the Class Schedule, the "current" quarter is determined by the following (in order):

  1. The quarter for which registration is currently open. In the case where registration periods overlap (i.e. Fall and Summer), the earlier quarter is chosen (i.e. Fall). OR,
  2. If registration is not currently open, the quarter currently taking place, OR
  3. If the current date/time falls during a break between quarters, the previous quarter is considered active until the first day of the next quarter.

Common data types

YearQuarter

A YearQuarter is a value that identifies one of 4 quarters ( Summer, Fall, Winter, Spring) for a specific year. (Note that the term quarter alone typically refers to a quarter without specifying a particular year.)

  • ID: string

    A 4-character unique identifier. Primarily used in code-based calculations, selections, etc. (Ex: A341)

  • FriendlyName: string

    A more human-readable representation of the YearQuarter value. Typically used in user interfaces, etc. (Ex: Fall 2013)

Subject

  • Title: string

    The one-line title of the subject of study. (e.g. English or American Sign Language)

  • Slug: string

    The portion of the URL which uniquely identifies the current subject. Slugs may look like course prefixes, but are unique and can be mapped to one or more of the latter.

  • CoursePrefixes: string []

    Array of strings, each of which is an abbreviation representing a course of study under the current subject. (e.g. [HSSA&,ALDAC]). This architecture also supports subjects that cover both Common Course and non-Common Course numbered courses. (e.g. [ENGL,ENGL&])

Description

Course descriptions can change as time goes by, so each course has an array of descriptions - each specifying the YearQuarter in which they become effective. Having future information can be useful to let students know that a course will be changing its description, and when.

  • CourseID: string

    The unique value which identifies a course. Typically a subject and course number, separated by a space. (Ex: ENGL 101)

  • Description: string

    The official description of the course.

  • YearQuarterBegin: YearQuarter

    The quarter that this description took/takes effect.