Inspiration Every semester, academic coordinators spend days tangled in spreadsheets trying to draft a workable timetable. It’s an exhausting puzzle where one small oversight—like double-booking a lab, overlooking faculty availability, or miscounting weekly subject hours—creates a domino effect of clashes across departments. Having watched our own mentors and department heads deal with the headaches of manual scheduling and last-minute room reassignments, we wanted to build something that fundamentally eliminates that administrative friction and makes institutional scheduling completely painless.
What it does SmartSched is a centralized academic management and automated scheduling platform for colleges and universities. It handles institutional hierarchies across four dedicated user tiers: Principal, Department Admin, HOD, and Faculty. Administrators configure departments, regulations, curriculum subject hours, classrooms, and faculty availability. At the press of a button, our engine automatically maps out conflict-free class timetables that satisfy room capacities, lab types, and teacher workloads. Beyond generation, the platform integrates day-to-day academic workflows, including formal HOD approval/rejection pipelines, real-time clash validation, faculty leave requests with substitute assignment, lecture logging, and institution-wide workload reporting.
How we built it We architected SmartSched as a decoupled, multi-service web application:
Frontend: A responsive single-page application built with React, React Router for role-based navigation, Axios for API consumption, and React Hot Toast for intuitive feedback.
Backend: Two independent Spring Boot services running on Java 17—an Authentication Service handling credentials and JWT issuance, and a Core Service hosting domain logic, scheduler workflows, and role-based authorization.
Persistence & Logic: MySQL serves as our relational data store, managed via Spring Data JPA and Hibernate.
Scheduling Engine: A custom, rule-based constraint scheduler operating inside the Core Service that iteratively validates triple-resource availability (faculty, classroom, and student cohort) alongside target weekly hours before committing schedule entries.
Challenges we ran into Handling Multi-Dimensional Constraints: Designing the timetable algorithm was tough; balancing hard constraints (avoiding simultaneous teacher, room, or section overlaps) while guaranteeing that total weekly theory and lab credits were completely fulfilled required extensive iterative checks and robust fallback handling.
State & Multi-Role Isolation: Building a strict multi-tier hierarchy (Principal, Admin, HOD, Faculty) meant securing endpoints with fine-grained JWT validation so users could only interact with department-level or role-specific resources.
Interconnected Relational Schema: Modeling educational relationships—where subjects map to regulations, curriculums, classes, and assigned teachers—required a meticulous relational design to avoid orphaned records and foreign-key deadlocks during batch timetable generation.
Accomplishments that we're proud of Zero-Conflict Generation: Successfully building a constraint validator that eliminates overlapping timetable slots, detects missing or extra hours, and verifies teacher/room availability without spreadsheet intervention.
End-to-End Operational Workflow: Going beyond simple timetable generation to support real academic operations—such as multi-stage HOD timetable review and approval, automated substitute faculty allocations during leave, and daily lecture logs.
Clean Architectural Separation: Keeping authentication and business logic cleanly separated across two independent Spring Boot services while maintaining sub-two-second standard API latency and a seamless user experience.
What's next for SmartSched Dedicated AI/Optimization Engine: Upgrading our current constraint-based scheduler to an intelligent optimization model (leveraging genetic algorithms or reinforcement learning) to produce optimal, fatigue-balanced teaching schedules.
Dynamic Real-Time Reallocation: Adding automated, on-the-fly timetable adjustments when sudden faculty absences occur, instantly alerting substitutes and students via mobile push notifications.
Student Portal & Mobile App: Expanding beyond administrative and faculty roles to launch a dedicated student mobile view with personal class schedules, room changes, and real-time attendance tracking.
What we learned
Translating Academic Rules into Clean Logic: We learned how complex real-world scheduling actually is once you try to code it—turning messy institutional edge cases (like split lab hours, shared rooms, and faculty-hour quotas) into a deterministic constraint-checking algorithm. Clean Service Decoupling in Spring Boot: Dividing the system into dedicated Authentication and Core services taught us practical design patterns around stateless JWT authentication, role-based endpoint security, and clean Controller-Service-Repository separation. Relational Data Integrity at Scale: Structuring relationships across dozens of interconnected academic entities—from curriculum regulations down to individual period assignments—showed us the importance of disciplined schema design, foreign-key indexing, and preventing cascading transaction failures. Bridging Backend Complexity with Intuitive UX: We discovered that an advanced scheduling backend is useless if coordinators find it overwhelming; designing contextual React dashboards tailored specifically to what a Principal, HOD, or Faculty member needs made all the difference in usability.
Log in or sign up for Devpost to join the conversation.