Academic Course Planner

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

Python ยท Flask SQLite SQLAlchemy HTML/CSS
Course Planner Screenshot

Project Overview

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.

Key Features

Semester Planning

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.

Schedule View

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.

Conflict Detection

The system compares course time slots using datetime logic and highlights overlapping classes in the schedule, preventing invalid planning decisions.

Prerequisite Check

Before adding a course, the system verifies whether required prerequisite courses have been completed. This ensures academic rules are enforced.

Recommendations

Courses are recommended based on completed prerequisites and current enrollment. The system prioritizes courses available in the current semester for better planning.

GPA Tracking

Calculates GPA using course grades and credit hours. This helps students monitor academic performance and understand their progress toward graduation.

Technology Stack

Backend

Flask (Python)

Flask is used to build the backend of the application. It handles routing, business logic, and communication between the frontend and database.

Database

SQLite

SQLite is used as the database to store course information, user enrollments, and academic progress in a lightweight format.

ORM

SQLAlchemy

SQLAlchemy simplifies database interactions by allowing Python-based queries instead of writing raw SQL, improving readability and maintainability.

Frontend

HTML & CSS

HTML and CSS are used to design the user interface, including the course catalog, schedule view, and overall layout with a consistent theme.

Authentication

Flask-Login

Flask-Login manages user sessions, allowing secure login, logout, and access control for authenticated users.

Logic

Python (Core)

Core Python logic is used for GPA calculation, prerequisite checking, conflict detection, and course recommendation algorithms.

Milestones

System Architecture & API Integration

  • Built backend using Flask and SQLite
  • Used SQLAlchemy for database management
  • Created API endpoint to return course data in JSON
  • Fetched and displayed data dynamically using JavaScript

User Authentication System

  • Implemented login and logout using Flask-Login
  • Protected routes for authenticated users only
  • Ensured each user has a personalized schedule

Database Design

  • Created Course and Enrollment tables
  • Stored course details (code, credits, semester, prerequisite)
  • Linked users to courses through enrollments

Course Catalog & Search

  • Expanded course database for full degree plan
  • Added filtering by category (CS, Math, GEC)
  • Implemented search by course code and name

Weekly Schedule View

  • Designed calendar-style weekly layout
  • Mapped courses to time slots and days
  • Used Jinja templates for dynamic rendering

Conflict Detection

  • Compared course time intervals
  • Detected overlapping classes
  • Highlighted conflicts visually in red

Validation System

  • Checked prerequisites before enrollment
  • Prevented duplicate course registration
  • Enforced 16 credit hour limit per semester
  • Restricted courses to correct semester (Fall/Spring)

Multi-Semester Planning

  • Allowed planning across multiple semesters
  • Supported Fall and Spring over multiple years
  • Displayed structured academic timeline

Course Recommendation System

  • Suggested courses based on completed prerequisites
  • Excluded already enrolled courses
  • Linked recommendations to course catalog

GPA & Progress Tracking

  • Calculated GPA using grades and credit hours
  • Tracked completed credits
  • Displayed progress toward degree completion

Debugging & Improvements

  • Fixed static file and routing issues
  • Resolved template rendering errors
  • Improved system stability and performance

Challenges

Time Conflict Detection

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.

Database Schema Updates

Adding new features like GPA tracking required modifying the database schema. Handling errors such as missing columns required careful debugging and updates.

Semester Restrictions

Ensuring that courses could only be added in valid semesters (Fall/Spring) required implementing additional validation logic in the backend.

User Experience Design

Designing a clean and intuitive UI while maintaining functionality was challenging, especially when organizing schedules and course lists.

Future Work

Advanced Recommendations

Improve the recommendation system by considering degree requirements, course difficulty, and student performance history.

Mobile Optimization

Enhance the interface to be fully responsive and optimized for mobile devices.

Export & Sharing

Allow users to export schedules as PDFs or share them with advisors.

Notifications

Add reminders for upcoming semesters, deadlines, and course registration.

Integration with University Systems

Connect the planner with real university databases for live course data.

Screenshots

Demo Video

PROJECT ASSETS

Download Source Code

You can download the full Academic Course Planner project ZIP file here:

Download Course Planner Source Code (.ZIP)