The Smart Classroom & Timetable Scheduler is a web platform for building academic timetables without spreadsheet chaos. Configure your institution (days, periods, breaks), register subjects, faculty, rooms and batches, declare your constraints — then generate, review and publish conflict-free schedules, exporting them as PDF, Excel or CSV.
It is a fully client-side app: no backend, no account. Everything lives in the browser via
localStorage, so it works offline and on any machine.
- Institution Setup — working days, period structure, breaks and semester dates
- Data Management — subjects (theory/lab), faculty, rooms and student batches
- Constraint Manager — hard and soft constraints (no double-booking, room capacity, …)
- Timetable Optimizer — per-class generation with:
- conflict prevention against already-saved timetables
- pattern-avoidance heuristics so schedules don't collapse into repetitive blocks
- randomized seeds — regenerate to get alternative valid layouts
- Timetable Viewer — approve, publish and inspect generated schedules
- Exports — PDF and Excel for whole timetables, plus dedicated lab-schedule CSVs (simple "which batch, which subject, which lab" view and per-labroom listings)
- React + TypeScript, Vite, Tailwind CSS, shadcn/ui component kit, lucide-react icons
- Exporters: jspdf, jspdf-autotable, xlsx (+ custom CSV lab exporters in the engine)
- State: React hooks +
localStoragepersistence - Package management: pnpm (workspace lockfile included)
Smart_Classroom_And_TimeTable_Scheduler/
├── shadcn-ui/ # The application
│ └── src/
│ ├── components/ # InstitutionSetup, DataManagement, ConstraintManager,
│ │ # TimetableOptimizer, TimetableViewer (+ ui kit)
│ ├── lib/timetableEngine.ts # Generation logic + lab-schedule CSV exporters
│ ├── types/timetable.ts # Shared domain types
│ └── pages/ # Index + 404
├── build/v1/ # Pre-built static production bundle (open index.html)
├── cover/ # Project cover art
├── LICENSE
└── README.md
git clone https://github.com/princekumar-dev/Smart_Classroom_And_TimeTable_Scheduler.git
cd Smart_Classroom_And_TimeTable_Scheduler
pnpm install
cd shadcn-ui
pnpm dev # http://localhost:5173npm/yarn also work (
npm installinsideshadcn-ui/), but pnpm is the configured manager.
No build step? A ready-made static bundle is committed at build/v1/ — serve
that folder with any static server for a quick preview.
- Institution Setup — define days, periods, breaks and term dates
- Data Management — add subjects, faculty, rooms and batches
- Constraint Manager — declare hard/soft rules
- Timetable Optimizer — pick a class/batch and generate (re-run for alternative layouts)
- Timetable Viewer — approve, publish and export PDF / Excel / lab CSVs
See LICENSE.
Prince Kumar — @princekumar-dev
