A Modular Monolith Spring Boot application for modern residential compound management.
1. Decrypt Configuration (Required) This project uses an encrypted secrets file. You must decrypt it before running the app.
# Ask team lead for the password
openssl enc -aes-256-cbc -pbkdf2 -d -in secrets.enc -out secrets.properties2. Start Database & Tools
docker compose up -d- PgAdmin: http://localhost:5433 (Login:
admin@sakany.com/ Password: insecrets.properties) - Postgres: Port
5432
3. Run Application
./gradlew bootRunIf you are on Windows, you can run the full local stack with one command:
.\run-local.ps1Useful options:
-SkipDockerwhen Postgres/pgAdmin are already running.-DisableFlywayValidationonly for temporary migration-drift debugging in local dev.
Sakany follows a Modular Monolith architecture with Domain-Driven Design (DDD) principles.
com.theMs.sakany.shared: Shared kernel (DDD base classes, value objects).com.theMs.sakany.users: User management & authentication (Planned).com.theMs.sakany.maintenance: Maintenance ticket lifecycle (Planned).
The secrets.properties file is gitignored. To share changes with the team:
- Edit
secrets.propertieslocally. - Encrypt and commit the new file:
openssl enc -aes-256-cbc -pbkdf2 -salt -in secrets.properties -out secrets.enc
- Language: Java 23 (Sequenced Collections, Virtual Threads ready).
- Style: Google Java Style (enforced via Spotless - planned).
- For Residents (Mobile): QR Code Access, Maintenance Requests, Community Voting.
- For Admins (Web): Operations Dashboard, Security Logs, Financial Tracking.