Rabbit is a student Java project composed of:
server— Java backend with HTTP server and PostgreSQL integrationclient— JavaFX client application for the graphical interfacecommon— shared models and DTOs for both client and server
- Java 25
- JavaFX 25
- Python
- Maven
- PostgreSQL
- Docker / Docker Compose
- JSON processing with Jackson
- Environment variables loaded via
java-dotenv
client/— JavaFX UI, FXML, resourcesserver/— HTTP server, database, migrationscommon/— shared models, enums, DTOsmodel/— utility scripts / research section (not part of the main Maven project)
- Create a
.envfile in the project root. - Copy all variables from
.env.exampleinto the file. - Adjust values for your local environment if needed.
The
.envfile is required to configure database access and other environment settings.
Docker and Docker Compose are required.
docker compose up -dThe project uses an SQL migration system stored in server/src/main/resources/migrations.
New migrations should be added in the format:
V{{migration_number}}__{{description}}.sql
Migrations are validated automatically when the server starts.
mvn clean compile exec:java -pl servermvn clean compile javafx:run -pl clientAfter the server is running, check the basic endpoint:
curl http://localhost:6969/helloAnd open documentation:
http://localhost:6969/swaggerFor using endpoint you need to login throw auth request and add it as bearerAuth.
Password for all seed users is qwerty.
Open:
http://127.0.0.1:8080/
Login:
- email:
admin@example.com - password:
admin
Add a server in PGAdmin:
- Hostname:
rabbit_db - Port:
5432 - Username:
user - Password:
password
- Before starting the server, make sure the PostgreSQL Docker containers are running.
- If the project cannot find JavaFX, verify that JavaFX is available to the Maven plugin.
The AI part of this project is based on: https://github.com/nobujinn/smart-task-assignment
The authors of this project are a team of VAVA students; the code is organized into the modular structure client, server, common.





