You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OSUCourseTracker is a web-based application designed for Oregon State University (OSU) to help track and manage student course plans across multiple terms, or semesters. Driven by a relational database backend, this application tracks courses students plan to take during specific terms, while ensuring each student course plan meets both course prerequisite requirements and course availability.
The current MyDegrees Planner tool offered via BeaverHub does not check prerequisites or course offering conditions, which means advisors need to manually check for conflicts whenever plans are updated.
Our goal is to not only help efficiently track students’ course roadmap, but also alleviate the review process for advisors, as the tool will enforce both prerequisite requirements and course availability conditions.
Course Project Details
Project idea developed and created collaboratively by a team of two students (April Wang and Bobby Curley) for CS340 - Introduction to Databases at OSU during Fall 2025 quarter (September through December 2025)
Project Requirements:
Database should have at least 4 entities and at least 4 relationships, one of which must be a many-to-many relationship.
Primary user is the administrator of the database
Functionality requirements:
It should be possible to INSERT entries into every table individually.
Every table should be used in at least one SELECT query.
CRUD needs to be implemented for at least one entity and one intersection table.
Deleting from a M:M relationship shouldn't create data anomalies in related tables.
Website needs to dynamically populate drop-downs/inputs rather than manually entering foreign key IDs
One relationship must be NULLable using UPDATE to remove the relationship
Database Schema
UI Screenshots
Pages are dynamically generated based on the database contents
Dropdown, input, checkbox, and radio button values are dynamically generated based on database contents
The screenshots below are non-exhaustive and do not show every UI or form.
Courses & Courses_has_Prerequisites
Terms & Terms_has_Courses
CREATE Terms_has_Courses
StudentTermPlans & StudentTermPlans_has_Courses
CREATE/UPDATE/DELETE StudentTermPlans_has_Courses
Note, this updates and deletes a many to many relationship
Students
Local Dev Environment Setup Instructions
Clone Repo
Navigate to directory on computer where you want the repo
(FOR FIRST TIME ON BRANCH) Push your local branch to remote repository
git push -u origin BranchName
In CLI, this will print a message saying "Create a pull request for [...]" and provide a link. Command + Click that link to automatically generate pull request.
For subsequent pushes:
git push
Create Pull Request in Github website (by command clicking the link described in step 4):
Verify base that you want to merge into is correct
Add title and description if appropriate
Request reviewer on the right hand side
Click Create Pull Request
If at the top of the PR, it does not say "Able to merge" in green with a check mark:
Do step 2
FOR REVIEWER OF PR:
Open Pull request in github website
Go to "Files Changed" tab
Review code, click on line number to leave comment (you can click and drag to select multiple lines)
Submit review comments
Communicate with teammate
About
Full-stack academic planning tool for OSU students to organize multi-term course schedules. Validates prerequisites and availability. Built with Flask, MySQL, Jinja, and a responsive JS/HTML/CSS frontend.