tanujdargan / uvic-coursemap

https://uvic-coursemap.vercel.app
0 stars 0 forks source link

UVic CourseMap

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.

Live Website

Check out the live version of the project here.

Inspiration Credits

API Reference

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

Seat Capacity Data

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>

Appendix

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.

Authors

FAQ

Is UVic CourseMap officially supported by UVic?

No, this is an independent project and not officially affiliated with the University of Victoria.

Can I contribute to the project?

Yes! Contributions are always welcome. Check out the "Contributing" section for more information.

Contributing

Contributions are encouraged and appreciated! If you would like to contribute, follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Open a pull request for review.

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)

Run Locally

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