https://github.com/apexal/orca
Open-source RPI Course API
https://github.com/apexal/orca
Last synced: about 2 months ago
JSON representation
Open-source RPI Course API
- Host: GitHub
- URL: https://github.com/apexal/orca
- Owner: Apexal
- License: isc
- Created: 2020-11-23T21:52:49.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-03-22T16:40:13.000Z (about 4 years ago)
- Last Synced: 2025-03-25T04:33:02.666Z (2 months ago)
- Language: Python
- Size: 854 KB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### **ORCA** is an open-source API for RPI's course schedule.
Deployed at [https://rcos-orca.herokuapp.com/docs](https://rcos-orca.herokuapp.com/docs) [(alternate docs)](https://rcos-orca.herokuapp.com/redoc)
## Overview
ORCA gives you access to every course offered in a semester along with the sections scheduled with weekly periods. This includes:
- course title
- course id (e.g. BIOL-1010)
- course sections with
- crn
- id (section 01, 02, ...)
- how many credits it can be taken for
- current enrollment count
- max enrollment count
- url to textbooks (RPI Bookstore)
- section periods with
- type (lecture, recitation, lab, ...)
- start and end time
- days of the week it meets
- instructor(s)
- locationLook at the requests' example responses to see the full schemas.
### Data
ORCA periodically fetches its data from the SIS course search and the public page listing course sections with enrollment data in table format. [Spring 2021 Example](https://sis.rpi.edu/reg/zs202101.htm)
Theses pages are difficult to read and even more difficult to programmatically parse. The data is fetched and updated **once every hour during the day** each day, though it is unclear how often the Registrar updates the pages themselves.
### Uses
This course data can be used for a variety of purposes small and large. Here are some examples:
- create your own scheduling interface (e.g. YACS or QuACS)
- create student tools that use course data
- used textbook marketplace
- study group organizers
- schedule visualizers
- schedule importers
- data visualizations
- map out locations of periods
- create directions for getting to and from classes### Documentation
#### Semesters
The Registrar evidently identifies semesters with a short numeric code comprising:
1. 4-digit year the semester starts during
2. 2-digit zero padded month the semester starts during
3. (Arch) 2-digit code for specific part of semester
- `01` - Full Term
- `02` - First Half
- `03` - Seond Half**Examples**
- `20210` Spring 2021
- `202009` Fall 2020
- `20210501` Summer 2021 (Full Term)#### Database Schema
[Here](https://dbdiagram.io/d/5fbb43a63a78976d7b7cfb03) is a visualization of the simple database schema used for the API. It also has the schema written in Database Markup Language.#### Source Code
ORCA is entirely open source and hosted on GitHub at [Apexa/orca](https://github.com/Apexal/orca)### Issues/Feature Requests
Please report these on the GitHub repo at [Apexa/orca](https://github.com/Apexal/orca/issues)!
### Main Contributors
- Frank Matranga ([@Apexal](https://github.com/Apexal))
- Joshua Wu ([@123joshuawu](https://github.com/123joshuawu))