An open API service indexing awesome lists of open source software.

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.

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.