https://github.com/hloc26/scheduler-standalone
A desktop application for generating and managing teacher schedule. Targeting school administrators.
https://github.com/hloc26/scheduler-standalone
java-25 javafx
Last synced: 5 months ago
JSON representation
A desktop application for generating and managing teacher schedule. Targeting school administrators.
- Host: GitHub
- URL: https://github.com/hloc26/scheduler-standalone
- Owner: HLoc26
- Created: 2025-12-28T14:45:52.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2026-02-03T17:22:47.000Z (5 months ago)
- Last Synced: 2026-02-03T18:27:50.429Z (5 months ago)
- Topics: java-25, javafx
- Language: Java
- Homepage:
- Size: 295 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## π― Overview
Automated desktop solution for school scheduling. This application transforms the error-prone manual task of time-slot
assignment into an optimized process using high-performance constraint solvers.
> [!IMPORTANT]
> **Core Engine:** The optimization logic (CP-SAT) is hosted in a private repository.
> Contact [dhl26052004@gmail.com](mailto:dhl26052004@gmail.com) for access to the `scheduler.engine.jar`.
## π Key Features
* **Smart Resource Management:** CRUD for Teachers, Classes, and Subjects with SQLite persistence.
* **Constraint Configuration:** Visual "Busy Matrix" for teachers and customizable teaching loads.
* **Automated Solver:** Deep integration with **Google OR-Tools** to solve NP-hard scheduling problems.
* **Modern UI:** Responsive desktop experience built with JavaFX and FXML.
## π οΈ Tech Stack
* **Language:** Java 25
* **GUI:** JavaFX 26
* **Database:** SQLite
* **Optimization:** Google OR-Tools (CP-SAT Solver)
## ποΈ Architecture
Decoupled **MVC** (Model-View-Controller) for clear separation of UI and logic.
Click to see diagram
```mermaid
graph TD
subgraph Public_Application_Core [Application Core
Open Source]
direction TB
DB[(SQLite Database)]
subgraph MVC_Pattern [MVC Architecture]
M[Models
Teacher, Class, Subject]
V[View: JavaFX FXML Screens]
C[Controller
ScheduleGeneratorController]
end
API[Optimization Interface]
end
subgraph Private_Engine [Private Engine - Proprietary]
SOLVER[Google OR-Tools
CP-SAT]
LOGIC[Constraint Logic & Rules]
end
%% Workflow Flowchart
DB <--> M
M <--> C
V <--> C
C -->|1. Request Solve| API
API -->|2. Data Transfer Object| LOGIC
LOGIC -->|3. Define Constraints| SOLVER
SOLVER -->|4. Return Optimal Solution| API
API -->|5. Update Model| M
M -->|6. Refresh UI| V
```
## πΊοΈ Roadmap
- [x] Base MVC Architecture
- [x] Google OR-Tools Integration (CP-SAT)
- [x] Export schedule to Excel/PDF
- [ ] Multi-language support (Vietnamese/English)
- [ ] Interactive schedule view where admin can drag and drop the slots
πΈ Screenshots
Fig 1. Teacher general information and busy matrix configuration.
Fig 2. Class management organized by Grade.
Fig 3. Scheduling engine solving complex constraints using CP-SAT.
Fig 4. Final generated schedule view.