Simple web application built with Django. The application aims to provide an one-stop interface for UBC students to find course information, including professor ratings, grade distribution, and nested prerequisite courses, in hopes of helping them better plan out their study path throughout university.
UBC Course Planner is the result of revising and completing the Oakhacks 2020 first place project. See the Wiki for screenshots of the website and information for developers that want to build on this application.
This repository is deployed using Gunicorn, Nginx, Docker, AWS, and GitHub Actions to the temporary domain name of ubccourses.software every time a commit is pushed to the main branch. Our deployment methodology is documented in an old pull request.
For information about this site's data sources and the web scraping scripts used, see our data repository, ubc_course_explorer_data. The data repository is used as a submodule in this repository's app/ubc_course_explorer_data
directory so that application data can be updated separate from the application itself.
-
Install Docker: Install Docker Engine
-
Clone the repository, with the data repository as a submodule
git clone https://github.com/patrick-5546/ubc-course-explorer.git --recurse-submodules
- If the
app/ubc_course_explorer_data
directory is still empty, see the Wiki's Submodules section for more information about Git submodules.
- If the
-
Optional: build the containers in the production environment to check for Python linting errors
docker-compose -f docker-compose.prod.yml build
-
Start the application
docker-compose up
- The application homepage can be found at 127.0.0.1:8000
- Stop the application with
CTRL+BREAK
- Run
docker-compose down
to stop all running containers- Add the
-v
argument to additionally remove all containers and volumes, serving to delete the database
- Add the
- Run