How mohammadbalambag26/scheduleboard works
ScheduleBoard is a college class-scheduling web application. Department Heads manage course assignments, generate or edit semester/year schedules, validate constraints, print schedules for offline review, then publish approved schedules for public viewing; Admins manage Department Head accounts. The server owns API, authentication, scheduling workflows, and database access. The README documents search, locks, announcements/events, and exports; those capabilities are represented within the server and website components. Some UI-to-API wiring is not shown in the excerpts, so that relationship is marked unverified.
Main entry points: server.js Express API · app.js Schedule website · generator-runner.js Generation runner · generator-worker.js Generation worker
Components 17
Web interfaces
- Schedule website
public/app.js - Standalone viewer
standalone/scheduleboard.html
Server workflows
- Express API
server.js - Login and roles
server.js - Account management
server.js - Subject assignments
server.js - Schedule management
server.js - Draft and publish
server.js - Timetable and exports
server.js - Announcements and events
server.js
Schedule generation
- Generation runner
server/generator-runner.js - Generation worker
server/generator-worker.js - Schedule solver
server/generator.js
Persistence
- MySQL database
schema.sql - Connection pool
server/db.js
Other components
- Public visitor
- Admin / Head
Connections 16
- Public visitor → Schedule website: views
README.md - Admin / Head → Schedule website: manages
README.md - Schedule website → Express API: calls API
- Express API → Login and roles: authenticates
server.js - Express API → Account management: manages accounts
README.md - Express API → Subject assignments: manages
README.md - Express API → Schedule management: edits and validates
README.md - Express API → Draft and publish: publishes
README.md - Express API → Timetable and exports: serves and exports
README.md - Express API → Announcements and events: manages
README.md - Express API → Generation runner: dispatches generation
server.js - Generation runner → Generation worker: starts worker
server/generator-runner.js - Generation worker → Schedule solver: calls solve
server/generator-worker.js - Express API → Connection pool: queries
server.js - Connection pool → MySQL database: reads and writes
- Public visitor → Standalone viewer: opens
README.md