Academic Schedule Generator
Automatically generate conflict-free timetables for educational institutes.
What is Academic Schedule Generator?
Academic Schedule Generator is an automated scheduling system designed for educational institutes. If you've ever seen a coordinator juggling spreadsheets trying to fit 20+ teachers across multiple classes and timeslots without clashes, that's the problem this solves. As the size of an institute grows, manual scheduling becomes a nightmare. This tool generates a complete, conflict-free timetable in seconds.
How the Scheduling Engine Works
The core of the project is a scheduling engine powered by Greedy and Backtracking algorithms. It starts by greedily assigning classes to available slots, respecting constraints like teacher availability, lunch breaks, and ensuring no teacher is double-booked. When it hits a dead end where no valid assignment is possible, it backtracks and tries alternative arrangements until it finds a solution that satisfies all the rules. The result is a full timetable with zero conflicts.
Features
Admins can manage teachers, classes, subjects, and timeslots, then hit generate and get a complete timetable. But it's not just set-and-forget. The generated timetable has a drag-and-drop interface where coordinators can manually adjust slots, and the system actively checks for clashes in real-time so you can't accidentally break the schedule. Teachers get their own login through Google OAuth. The admin enters their email, and teachers can sign in with their Google account to view their personal timetable.
Tech Stack
I'm building this solo as my final year BCA project. The frontend uses React with Tailwind CSS and dnd-kit for the drag-and-drop functionality. The backend is Python with FastAPI, SQLAlchemy, and Alembic for migrations, running on a MySQL database. Authentication is handled through Google OAuth 2.0 with JWT tokens. The project is still in development and will go public on GitHub once it's approved.
What I Learned
The scheduling engine was the most rewarding part to build. It sounds simple on paper, just assign classes to slots, but the combinatorial complexity explodes fast when you add real-world constraints. Getting the Greedy + Backtracking approach to produce timetables that actually make sense for a real institute taught me a lot about algorithm design, constraint satisfaction, and thinking through edge cases that no textbook really prepares you for.