Home
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
- Reduce (and ultimately, hopefully eleminate) as much manual work from this process as possible.
- 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.
- 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.
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.
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 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:
The "index" page. This view primarily contains links to the other views.
Ex:
https://www.bellevuecollege.edu/classes/Winter2014
Displays a list of Course subjects which have Sections offered in the specified YearQuarter.
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.
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.
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.
- 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.)
- Project README
- Managing Class Schedule data with built-in CMS functionality
- The Class Schedule Web API
- Developing for the Class Schedule - including more detail on the various views and their component partial views.
- The CtcApi