A full-stack web application for finding, rating, and reviewing Ontario high school courses. It was created in Fall 2024 using Django, HTML, and CSS.
A look at navigating the site
- 📚 Database of every OSSD course, with its description, category, and pre-requisite courses
- ⚙️ Courses can be filtered by grade, level (e.g. University or College), or category. Filtering is highly customizable, with multiple options able to be selected at once.
Ex. a filter for "M"-level grade 11 or 12 courses with the keyword "art"
- 👉 Filtering is instantaneous, and adjusts after one click.
↕️ Option to sort search queries by course code, name, or number of ratings.- 📜 Page for each course, with reviews, ratings, and course information. Shows which courses are pre-requisites to others, and which are required for others, with links.
- 🏠 A landing home page and a contact page
- 📝 Form for receiving reviews with input validation (ASCII and max length) to prevent abuse. Optionally, reviews must be moderated by an admin before being posted.
- 🔍 Search feature
- 📱 Responsive design that is mobile and user friendly.
- ☆ Adaptive star design using CSS to display the ratings.
The custom star elements
- Header and footer
- Home (/)
- Explore (/explore)
-
Filters (e.g. /explore?level=M ...)
-
Searches (e.g. /explore?search=English ...)
-
Grade 9 Courses (/explore?grade=1)
-
...
-
Grade 12 Courses (/explore?grade=4)
-
- Courses
-
Drama (/course/ADA1O/)
-
...
-
Kinesiology (/course/PSK4U/)
-
- Contact (/contact)
This repository omits settings.py due to the security issues with publicly sharing it. The database (in SQLite) only contains the course info, and not any reviews (other than a few tests).
To install, make sure you have the latest version of Django (pip install Django) and Python. Clone the repository. It may be neccesary to create a Django project django-admin startproject <name> and integrate it with the repository so settings.py works.