Skip to content
This repository has been archived by the owner on Oct 11, 2023. It is now read-only.
Shawn South edited this page Mar 8, 2014 · 7 revisions

Purpose

Prior to 2011, the process of updating the online class schedule each quarter began with the printed booklet. The Rich Text Format (RTF) files used to produce the print copy were sent to the Webmaster, who would then begin the work of transcribing this data into static HTML pages. When the registration period for the next quarter approached, this process would begin anew.

Obviously, this process was neither sustainable, nor did it scale very well. The Online Class Schedule as an application grew out of the need to

  1. Reduce (and ultimately, hopefully eleminate) as much manual work from this process as possible.
  2. Flip the dependency, so that the online schedule (which always pulls from the latest data) is the master source. The print copy than then be generated from this.
  3. Empower division/program/unit managers to directly update their own information rather than submitting independent change requests to the Webmaster (or printing services, for that matter). See Managing Class Schedule data.

Architecture

Before continuing, it is strongly recommended that you familiarize yourself with the terms used within this project. In particular, we actively avoid using the term class, as it can mean different things to different people and/or depending on context.

A school's class schedule is a mission-critical service that incoroprates a wide variety of data from across the organization and impacts the majority of students' experiences. For Washington State community and technical colleges much - but not all - of the pertinent data is stored in a legacy system. The remainder needs to be managed in, or obtained from other systems.

Diagram overview of ODS data being merged with ClassSchedule data

The Online Class Schedule pulls data from this legacy system (via the CtcApi) and joins it with data maintained in the ClassSchedule database to display comprehensive class information to students, advisors, etc.

The web interface

The web interface was built using a Model-View-Controller pattern. Among other benefits, this allows us to:

  • Define a standard, predictable URL structure.
  • Separate the business logic from the visual presentation. (e.g. the entire UI could be replaced with by another framework/design without having to modify the business logic.)
  • Write unit tests directly against the business logic components. (This effort has only just begun.)

The web site UI is divided into four (4) primary URL views:

/classes

The "index" page. This view primarily contains links to the other views.

/classes/<YearQuarter>

Ex:

https://www.bellevuecollege.edu/classes/Winter2014

Displays a list of Course subjects which have Sections offered in the specified YearQuarter.

/classes/<YearQuarter>/<Subject>

Ex:

https://www.bellevuecollege.edu/classes/Winter2014/ENGL

Displays Sections offered in the specified YearQuarter for the specified Subject.

NOTE

Due to the potentially complex relationship between Course Subjects and the requirements around Common Course Numbering (CCN), the Subject in a URL is actually referred to as a Slug internally - and may be mapped to more than one Subject.

This view is most commonly what people think of when they hear the term schedule, as it includes days, times, rooms, instructors, etc.

/classes/All/<Subject>

Ex:

https://www.bellevuecollege.edu/classes/All/ENGL

Displays Courses offered for the specified Subject.

NOTE

Due to the potentially complex relationship between Course Subjects and the requirements around Common Course Numbering (CCN), the Subject in a URL is actually referred to as a Slug internally - and may be mapped to more than one Subject.

This view provides information most commonly thought of as the Course Catalog. It presents Course information (e.g. title, description) regardless of in what quarter associated Sections may or may not be offered.

Consuming Class Schedule data

In addition to the web site UI, the Class Schedule currently provides two additionl ways to obtain class information:

  • Select college employees can download an Export File, which can be used as the basis for creating the quarterly printed schedule. The following screenshot shows the download links, which appear when a user with the appropriate permissions is logged in.

Screenshot of Class Schedule with file export links displayed for logged-in Admin user

  • Many of the application views can return their data as a JSON collection, which may be consumed by other applications. (*This feature is still in development and is not yet available for all views.)

See also