This is an app to help schedule your program courses. The schedule is automatically filled by following parameters: course prerequisites, course offering, and max courses in a term.
This project is built with React, uses JoyUI as the component library, Styled Components for styling, and Jotai for state management. The app is deployed on Firebase.
To run the project, clone this repo and run npm i && npm start
The course offering, program, and courses data are all stored on the client.
- Course offerings are pulled from an older script - Github
- Programs are scraped by me - Github
- Courses data comes from Vikelabs course scraper - Github
Excalidraw referance during the design/ideating phase
Notion reference (this is a random shitty notes page, take things here with a grain of salt)
To use the program planner
- Select your program
- Add the courses you want to take
- Set the schedule slot of each course you’ve already completed
- Play around with the options!
Tips and info
- Hover on a course to see it’s full title (all icons should have tooltips)
- In course details, a checkmark is displayed next to a course if it is scheduled
- If the course cannot be schedule for whatever reason, you can force the course to be scheduled by setting it’s schedule slot
- How the prerequisite check works
- A web scraper is used to get the prerequisites from UVic
- The algorithm only checks “Complete all of…” and “Complete 1 of…” requirements and sees if the required courses are scheduled
- How the course offering data works
- Data is pulled on course offerings in that term for the previous 5 years
- If it was offered in all 5 years then it is marked as “offered”
- If it was offered in at least once in 5 years the it is “potentially offered”
- If it was not offered in the previous 5 years then it is “not offered”