Schoodule is an application for school schedule management. It helps organize schools, classes, teachers, subjects, cabinets, and schedules in one place.
To try it locally, make sure Java 21, Docker Desktop, and Node.js are installed, then run the full project check:
mvn clean install -Pqulice
The build starts PostgreSQL in Docker, applies Liquibase migrations, generates jOOQ classes, runs tests, lints frontend assets, and packages the application. After that, start the app with:
java -jar target/schoodule-0.0.1.jar
To run the packaged application with Docker Compose, build the jar first and then start the stack:
mvn clean install -Pqulice
docker compose up --build
Docker Compose reads deployment variables from the environment or from a local .env file.
Open http://localhost:9500/. If OAuth login is needed, provide ya-id and ya-secret. If you need to create the first administrator, enable bootstrap admin settings:
BOOTSTRAP_ADMIN_ENABLED=true
BOOTSTRAP_ADMIN_USERNAME=admin
BOOTSTRAP_ADMIN_EMAIL=admin@example.com
BOOTSTRAP_ADMIN_PASSWORD=StrongPass1!
Manage the school structure: schools, classes, teachers, subjects, cabinets, and schedules.
Work with role-based access so administrators and school staff can manage data with different permission levels.
Plan and maintain schedules through the web interface and API.
Install Java 21, Docker Desktop, and Node.js.
Run the full verification command before changes:
mvn clean install -Pqulice
Frontend linting is also available separately:
npm run lint
If you change the database schema, update the Liquibase changelog first and then run the normal Maven build. Keep changes small and verify role-sensitive behavior before sending them forward.