React single-page app for generating and managing school timetables from teacher-subject allotment data.
- Class-section timetable view
- Monday to Saturday schedule
- 8 periods per day
- Subject management
- Teacher management
- Teacher allotment
- Manual timetable editing
- Automatic timetable generation
- Teacher conflict prevention
- Admin verification for rows marked
Needs verification - PDF and Excel timetable download
- LocalStorage-based data persistence
- Node.js 20.5 or newer
- npm
This project uses Vite 5.4.11, which works with the Node version currently used on this machine.
Open a terminal in the project folder:
cd C:\react_app
npm installStart the development server:
npm run devVite will show a local URL in the terminal, usually:
http://localhost:5173
If port 5173 is already in use, run:
npm run dev -- --host 127.0.0.1 --port 5174Then open:
http://127.0.0.1:5174
npm run buildThe production files will be created in the dist folder.
npm run preview- Open the app in the browser.
- Go to
Automatic Timetable Generation. - Review rows marked
Needs verification. - Correct data in
Subjectsif needed. - Mark verified rows as verified.
- Click
Generate Timetable. - Use
Manual Timetable Generationto edit any slot. - Use
Download Timetableto export PDF or Excel.
- Data is stored in browser
localStorage. - There is no backend or database yet.
- To reset app data, clear the browser site data/localStorage for the app URL.
- The timetable generator blocks final generation if any source row still needs verification or has conflicting rules.
src/
components/ Reusable UI components
data/ Constants, seed data, and app context
pages/ App screens
utils/ Timetable generation, export, storage, and validation helpers
App.jsx Routes
main.jsx React entry point
If you see a white page:
- Stop the running dev server.
- Make sure
vite.config.jsexists. - Run the app again:
npm run devIf the browser still shows old data, clear localStorage and refresh the page.