A Spring Boot + PostgreSQL + Redis project for experimenting with restaurant and menu management.
Designed to run locally with zero configuration using Docker Compose and environment variables.
- Java 21+
- Maven 3.9+
- Docker + Docker Compose
- Git
See the folder layout section at the bottom of this README.
git clone https://github.com/
cp .env.example .env
copy .env.example .env
docker compose up -d
mvn spring-boot:run
The app will start on: http://localhost:8080
docker compose down
All configuration is driven through .env.
See .env.example for default values:
POSTGRES_DB
POSTGRES_USER
POSTGRES_PASSWORD
REDIS_HOST
REDIS_PORT
TOKEN_SECRET
TOKEN_EXPIRATION
- PostgreSQL runs at port
5433 - Default user/password:
dev_user/dev_pass - Flyway migrations are under
src/main/resources/db/migration
- Redis runs at
localhost:6379
./scripts/setup-env.sh
See full diagram below.
- This project is for local development and experimentation
- No real credentials are committed
.envis ignored by Git but.env.exampleis committed so others can set up quickly
platform/
│
├─ .env.example
├─ .env # ignored
├─ .gitignore
├─ README.md
├─ docker-compose.yml
├─ pom.xml
│
├─ src/
│ ├─ main/
│ │ ├─ java/com/foodorder/platform/
│ │ │ ├─ config/
│ │ │ ├─ controller/
│ │ │ ├─ service/
│ │ │ ├─ repository/
│ │ │ ├─ domain/
│ │ │ ├─ dto/
│ │ │ ├─ mapper/
│ │ │ └─ util/
│ │ │
│ │ └─ resources/
│ │ ├─ application.yml
│ │ ├─ application-local.yml
│ │ ├─ application-prod.yml
│ │ └─ db/migration/
│ │
│ └─ test/
│ └─ java/com/foodorder/platform/
│
└─ docs/
├─ architecture-diagram.png
├─ postman-collection.json
└─ notes.md