🎓Team Name: GradMap
🌎See the website at ubcgradmap.com!
gradmap-demo.mp4
Helping students map their future!
Recently, a problem faced by UBC students was caused by the transition from the Student Service Centre (SSC) to Workday. A key feature that was lost during this transition was the Degree Navigator tool. This tool provided a structured way for students to track their degree progress and understand how courses fit into their graduation requirements. Currently, Workday has an academic progress tool, however it is missing important information like the ability to view pre-requisite courses easily and the ability to plan courses multiple years in advance.
Many students like to plan their courses several years in advance and without a proper tool, long-term academic planning becomes difficult and error prone.
- Visual graph of every UBCV course.
- Search for individual course codes.
- Display course data including:
- Name
- Credits
- Schedule for course hours
- Past year course average
- Description
- Visual representation of course averages with colour.
- Directed graph to represent prerequisites, corequisites, and dependants.
- Navigate the graph by clicking on course nodes.
- We use the API provided by https://ubcgrades.com to get previous years course average for each course.
- We gathered course information from https://vancouver.calendar.ubc.ca/.
Note that UBCGradMap and UBCgrades are a third-party websites not affiliated with UBC. Information on this site may not be the same as those found from official UBC Sources.
If you don't already have docker installed, you can follow one of these guides.
- https://docs.docker.com/get-started/get-docker/ Docker desktop avaiable for all operating systems
- https://docs.docker.com/engine/install/ Docker engine for linux
Type this into your powershell or command line while Docker Desktop is running and you should get a list of containers. For a fresh install this will be empty.
docker psgit clone https://github.com/CPEN-221-2024/project-meriadoc-gradmapThis command goes into your powershell (on Windows) or terminal opened at the root directory of the cloned repository. Make sure Docker Desktop is running.
If you need more details for this step, open the folder that you installed with git, you should see a bunch of folders and files including a Dockerfile file. Then you can right-click in this directory and find the open terminal button. That's where you should be able to put the command below.
Type this command:
docker-compose upOnce you see that the GraphApi has started, the local site is up.
Go to http://localhost:5173 to see GradMap!
You can also visit the site on your phone if you are connected to the same wifi at http://<enter your ip here>:5173
To close the site, open the powershell/terminal and click ctrl c.
Alternatively, you can visit the version of the site that we host at https://ubcgradmap.com !
If you want to run the data scraper to recollect course data including grades and ubc calendar information, you can first run
docker psLocate gradmap in the list of containers, and using its ID or name run the scraper command.
docker exec project-meriadoc-gradmap-gradmap-1 scraper
# Alternatively with example ID
docker exec 74b3a910feab scraperThe scraper will run for a couple minutes and then the backend should automatically restart and you'll be able to see courses again.
To rebuild the Docker container, you can run the command
docker-compose up --buildFor example, if you were to pull new changes from the GitHub repository, you would have to rebuild the container. If you come across any issues open a GitHub issue and we will apply a fix that you can pull and rebuild from.
To see a report of the Jacoco testing, you can simply navigate to root of the directory and run the following:
./gradlew test
# or it also runs with build
./gradlew buildThen in the terminal you should see the printed test results. To see more in-depth results after running test or build, you can nagivate to build/jacocoHtml/index.html.
We think we have developed a tool that has the potential to be greatly expanded and filled with many more features. We hope to continue working on this project in some form over the next few months, so we have devised a list of potential features we may consider adding!
- Caching a graph that a user has made using cookies
- Selecting multiple courses and displaying the full tree
- Better parsing to differentiate types of requirements (e.g. one of x or y AND z)
- Ability to select a specific degree (CPEN for example) and display all graduation requirements
- Show the path(s) between two nodes


