Skip to content

Repository files navigation

Sakany 🏘️

A Modular Monolith Spring Boot application for modern residential compound management.

Java Spring Boot Docker PostgreSQL

⚡️ Quick Start

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.properties

2. Start Database & Tools

docker compose up -d
  • PgAdmin: http://localhost:5433 (Login: admin@sakany.com / Password: in secrets.properties)
  • Postgres: Port 5432

3. Run Application

./gradlew bootRun

Windows One-Command Start

If you are on Windows, you can run the full local stack with one command:

.\run-local.ps1

Useful options:

  • -SkipDocker when Postgres/pgAdmin are already running.
  • -DisableFlywayValidation only for temporary migration-drift debugging in local dev.

🏗️ Architecture

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).

🛠️ Development

Managing Secrets

The secrets.properties file is gitignored. To share changes with the team:

  1. Edit secrets.properties locally.
  2. Encrypt and commit the new file:
    openssl enc -aes-256-cbc -pbkdf2 -salt -in secrets.properties -out secrets.enc

Code Style

  • Language: Java 23 (Sequenced Collections, Virtual Threads ready).
  • Style: Google Java Style (enforced via Spotless - planned).

📦 Features

  • For Residents (Mobile): QR Code Access, Maintenance Requests, Community Voting.
  • For Admins (Web): Operations Dashboard, Security Logs, Financial Tracking.

About

A Modular Monolith Spring Boot application for modern residential compound management.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages