UVic CourseMap is a tool designed to help students at the University of Victoria (UVic) plan their course schedules with ease. This project provides an interactive and user-friendly course map to visualize program requirements and course offerings. It’s built for UVic students who want a streamlined way to manage their academic journey.
Note: This project is not affiliated with the University of Victoria (UVic) in any way. It is a personal project to assist other UVic students.
Check out the live version of the project here.
Since accessing UVic's API is not a feasible approach, a data scraper was built to obtain all information needed.
The data scraper for this project is maintained under a separate repository:
Scraper Repository
However, CourseMap uses MongoDB on the backend to store all its scraped data. API routes for this can be found under app/api/courses/routes.ts
.
For additional course information the route is app/api/seat-capacity
Since saving this data to our collection on MongoDB is not feasible, we can generate requests according to courses and then parse html from BAN1P. CourseMap is doing this under the hood using cheerio.
https://www.uvic.ca/BAN1P/bwckschd.p_disp_detail_sched?term_in=<termvalue>&crn_in=<crn>
This project was created with the aim of making it easier for UVic students to select and organize their courses. Users can effortlessly input their desired courses, visualize prerequisites, and ensure their academic progress aligns with program requirements. At the time of development, CourseUp by VikeLabs was the only viable alternative to UVic's internal registration system. However, as it had not been updated recently, CourseMap was designed to serve as a faster, more responsive alternative while actively addressing the needs of students.
No, this is an independent project and not officially affiliated with the University of Victoria.
Yes! Contributions are always welcome. Check out the "Contributing" section for more information.
Contributions are encouraged and appreciated! If you would like to contribute, follow these steps:
git checkout -b feature-branch
).git commit -m 'Add new feature'
).git push origin feature-branch
).Please ensure that your code adheres to the existing code style and passes all linting and formatting checks before submitting a pull request. You may face issues with fetching data for the pages since you need an API key. Feel free to reach out to me to get access to one! (Checkout my profile for ways to contact me)
Clone the project
git clone https://github.com/tanujdargan/uvic-coursemap.git
Go to the project directory
cd uvic-coursemap
Install dependencies
npm install
Start the development server
npm run dev