A web-based system that helps students plan their academic journey, manage schedules, and track degree progress efficiently.
Student: Kesha Agrawal
Course: Senior Design
University: Texas Wesleyan University
Semester: Spring 2026
The Course Planner is a web application designed to help students organize their academic journey by planning semesters, tracking completed courses, and visualizing weekly schedules. It allows users to browse courses, add them to future semesters, and automatically checks prerequisites, semester availability, and credit limits to ensure realistic academic planning.
The system also includes a recommendation engine that suggests courses based on completed requirements, along with GPA tracking for monitoring academic performance. Built with Python (Flask), SQLite, SQLAlchemy, and a modern purple-themed interface, the project brings together scheduling, recommendations, and performance tracking into one easy to use platform for students.
Users can assign courses to specific semesters (Fall/Spring with year selection). The system ensures that courses are added in a structured way across multiple semesters, helping students visualize their entire academic plan.
Displays courses in a weekly calendar format based on selected semesters. This allows users to clearly see class timings and better manage their weekly workload.
The system compares course time slots using datetime logic and highlights overlapping classes in the schedule, preventing invalid planning decisions.
Before adding a course, the system verifies whether required prerequisite courses have been completed. This ensures academic rules are enforced.
Courses are recommended based on completed prerequisites and current enrollment. The system prioritizes courses available in the current semester for better planning.
Calculates GPA using course grades and credit hours. This helps students monitor academic performance and understand their progress toward graduation.
Flask is used to build the backend of the application. It handles routing, business logic, and communication between the frontend and database.
SQLite is used as the database to store course information, user enrollments, and academic progress in a lightweight format.
SQLAlchemy simplifies database interactions by allowing Python-based queries instead of writing raw SQL, improving readability and maintainability.
HTML and CSS are used to design the user interface, including the course catalog, schedule view, and overall layout with a consistent theme.
Flask-Login manages user sessions, allowing secure login, logout, and access control for authenticated users.
Core Python logic is used for GPA calculation, prerequisite checking, conflict detection, and course recommendation algorithms.
One of the main challenges was implementing accurate conflict detection. This required converting time strings into datetime objects and comparing overlapping intervals across multiple days.
Adding new features like GPA tracking required modifying the database schema. Handling errors such as missing columns required careful debugging and updates.
Ensuring that courses could only be added in valid semesters (Fall/Spring) required implementing additional validation logic in the backend.
Designing a clean and intuitive UI while maintaining functionality was challenging, especially when organizing schedules and course lists.
Improve the recommendation system by considering degree requirements, course difficulty, and student performance history.
Enhance the interface to be fully responsive and optimized for mobile devices.
Allow users to export schedules as PDFs or share them with advisors.
Add reminders for upcoming semesters, deadlines, and course registration.
Connect the planner with real university databases for live course data.
You can download the full Academic Course Planner project ZIP file here:
Download Course Planner Source Code (.ZIP)