How projectarare/arare works
ARARE is a university timetable scheduling platform with a React operator console and Spring Boot REST backend. Operators load institutional master data and configure the academic calendar, check feasibility, then generate schedules asynchronously. They inspect and manually adjust timetables, or respond to events and disruptions with partial re-solving, before exporting results. The graph preserves documented import, analytics, and export capabilities; relationships are based on the README workflow because the supplied source excerpts do not show most API and service wiring.
Main entry points: api.ts REST API client · App.tsx React console · SolveJobService.java Solve job orchestration · TimetableViewer.tsx Timetable viewer
Components 21
Operator console
- React console
frontend/src/App.tsx - Schedule generator
frontend/src/pages/ScheduleGenerator.tsx - Timetable viewer
frontend/src/pages/TimetableViewer.tsx - REST API client
frontend/src/services/api.ts
Academic data
- Master data
frontend/src/pages/Teachers.tsx - University config
frontend/src/pages/UniversityConfig.tsx - Master data services
src/main/java/com/arare/features
Scheduling core
- Spring REST backend
src/main/java/com/arare/ArareApplication.java - Feasibility check
src/main/java/com/arare/features/schedule/FeasibilityCheckService.java - Schedule management
src/main/java/com/arare/features/schedule/ScheduleServiceImpl.java - Solve job orchestration
src/main/java/com/arare/features/solvejob/SolveJobService.java - Problem builder
src/main/java/com/arare/features/solver/TimetableProblemBuilder.java - Constraint solver
src/main/java/com/arare/features/solver/TimetableSolverService.java
Schedule operations
- Manual sessions
frontend/src/pages/ManualSessions.tsx - Disruption analysis
src/main/java/com/arare/features/impact/DisruptionServiceImpl.java - Events
src/main/java/com/arare/features/event/EventServiceImpl.java
Supporting capabilities
- CSV import
src/main/java/com/arare/features/dataimport/RelationalCsvImportService.java - Schedule exports
src/main/java/com/arare/features/schedule/TimetableExportService.java - Analytics and comparison
frontend/src/pages/AnalyticsDashboard.tsx
Other components
- Operator
- Relational database
Connections 26
- Operator → React console: uses
README.md - React console → Master data: routes to
frontend/src/App.tsx - React console → University config: routes to
frontend/src/App.tsx - React console → Schedule generator: routes to
frontend/src/App.tsx - React console → Timetable viewer: routes to
frontend/src/App.tsx - Master data → REST API client: submits data
README.md - University config → REST API client: submits config
README.md - Schedule generator → REST API client: requests schedule
README.md - Timetable viewer → REST API client: requests timetable
README.md - REST API client → Spring REST backend: calls REST
README.md - Spring REST backend → Master data services: serves master data
- Spring REST backend → Schedule management: routes scheduling
README.md - Schedule management → Feasibility check: checks feasibility
README.md - Schedule management → Solve job orchestration: submits solve
README.md - Solve job orchestration → Problem builder: builds problem
README.md - Problem builder → Constraint solver: provides problem
README.md - Constraint solver → Solve job orchestration: reports live score
README.md - Constraint solver → Relational database: persists result
README.md - Manual sessions → REST API client: updates assignments
frontend/src/pages/ManualSessions.tsx - Events → REST API client: exposes events
- REST API client → Disruption analysis: requests impact analysis
- Disruption analysis → Solve job orchestration: requests partial solve
README.md - REST API client → CSV import: imports data
README.md - Timetable viewer → Schedule exports: requests exports
README.md - REST API client → Analytics and comparison: serves analysis
- Master data services → Relational database: stores records