Secure-Schedule is an automated, high-security Personnel Task Scheduling Problem (PTSP) solver. Designed with a strict Zero-Trust architecture, the system assigns workers to tasks based on complex constraints, dynamic priorities, and availability, minimizing idle time and preventing employee burnout while enforcing organizational labor laws.
The project uniquely bridges traditional enterprise web development with an isolated, computationally heavy algorithmic sandbox.
- Core: Java 17, Spring Boot 3
- Security: Spring Security, Stateless JWT, BCrypt
- Data Persistence: Spring Data JPA, Hibernate, MySQL 8.0
- Architecture: DTO Pattern (explicit mapping, never exposing database entities)
- Core: Standalone Java 17 Engine
- Algorithms: Topological Sort, Greedy Scheduling, Round-Robin, Constraint Programming, and Memetic/Evolutionary strategies.
- Design Patterns: Strategy Pattern (scheduling logic), Builder Pattern (complex task instantiation).
- Framework: React 18 + TypeScript
- Build Tool: Vite (Hot Module Replacement)
- Styling: Modern CSS3
- HTTP Client: Axios with dynamic interceptors
- Containerization: Docker
- Sandboxing: Hyper-V (ensuring absolute isolation of the algorithm process)
- National ID Authentication: Login logic is strictly tied to
nationalId, moving away from standard usernames/emails. - Stateless Authentication: Fully implemented JWT flow. No session cookies are used, natively mitigating CSRF attacks.
- Admin-Only Registration: No public sign-up. User management (
POST /api/users) is strictly restricted toROLE_ADMIN.
- Isolated Algorithm Engine: The heavy scheduling computations are run in a completely isolated process (sandboxed via Hyper-V/Docker).
- Zero Database Access: The algorithm engine has NO direct access to the MySQL database. It receives anonymous, lightweight DTOs from the Main Backend, processes them, and returns the optimized schedule.
- Strategy Pattern Implementation: Plug-and-play scheduling strategies via the
SchedulingStrategyinterface. - Constraint Handling: Accurately processes strict dependencies (e.g.,
FINISH_TO_START), worker availability, maximum daily tasks, and strict deadlines.
- Java 17 (JDK)
- Node.js & npm
- MySQL 8.0
- Docker Desktop / Hyper-V (For sandbox environment)
Create the MySQL schema:
CREATE DATABASE secure_schedule_db;Update your application.properties with your database credentials and JWT secret, then run:
cd main-backend
./mvnw spring-boot:runRun the isolated algorithmic microservice:
cd algorithm
./mvnw spring-boot:runThe engine listens for DTO payloads from the Main Backend on http://localhost:8081
cd frontend
npm install
npm run devThe React client will be available on http://localhost:5173
📦 Secure-Schedule
├── 📂 algorithm/ # Isolated Java Engine, Topological Sorter, Schedulers
├── 📂 frontend/ # React + Vite + TypeScript Client
├── 📂 main-backend/ # Spring Boot API, Security, JPA, Auth Controllers
├── 📂 side-backend/ # Spring Boot API, Algorithm Controllers
└── 📜 README.md
Developed as a Final Engineering Project (Software Engineering) - Showcasing secure architecture, algorithm design, and full-stack integration.