Skip to content

Meriadoc-Gradmap/UBCGradMap

Repository files navigation

drawing

🎓Team Name: GradMap

🌎See the website at ubcgradmap.com!

gradmap-demo.mp4

🗺️Mission Statement

Helping students map their future!

❓Problem Description

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.

✨Features

  • 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.

📄Links/Sources

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.

🐳Running the Dockerfile

Install Docker

If you don't already have docker installed, you can follow one of these guides.

Ensure Docker is installed

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 ps

Clone this repository in your desired location

git clone https://github.com/CPEN-221-2024/project-meriadoc-gradmap

Build the Docker image

This 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.

drawing

Type this command:

docker-compose up

drawing

This step can take a while, possibly 5-10 min on slow internet or machines so get your cup of tea ☕.

Access the local site

Once you see that the GraphApi has started, the local site is up.

drawing

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 !

Optional: Run the data scraper

If you want to run the data scraper to recollect course data including grades and ubc calendar information, you can first run

docker ps

Locate 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 scraper

The scraper will run for a couple minutes and then the backend should automatically restart and you'll be able to see courses again.

Debugging Docker

To rebuild the Docker container, you can run the command

docker-compose up --build

For 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.

💣Running the Jacoco Test Report

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 build

Then 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.

💡Future Developments

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

About

A tool for visualizing the course prerequisite map of UBC Vancouver courses.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5