---
title: Project structure
---
classDiagram
direction TB
namespace server {
class src
class web
class operation
class service
class model
class data
class common
}
integration ..> client
client ..> operation
integration ..> data
web ..> operation
web ..> service
service ..> data
operation ..> model
model ..> common
data ..> common
service ..> model
src ..> web
Note: client can only access operation, model, common. No business code
Note: integration can only access client (with everything mentioned above) and data. No business code
Download sdkman to manage java and gradle versions.
git clone git@github.com:BSStudio/bss-web-admin-backend.git
cd bss-web-admin-backend
sdk env install
./gradlew spotlessCheck
./gradlew spotlessApply
./gradlew test
docker compose up -d
./gradlew integrationTest
docker compose down
Docker:
docker build -t bss-web-admin-backend .
Gradle:
./gradlew build
Docker:
docker run bss-web-admin-backend
Docker compose:
docker compose up
This will start the app, database, and 3rd party mocks.
If you want to look at metrics
# Set your git not to commit changes to the default Grafana config
git update-index --skip-worktree docker/grafana/grafana.db
docker compose -profile metrics up
# If you want to commit changes to the default Grafana config
git update-index --no-skip-worktree docker/grafana/grafana.db
git add docker/grafana/grafana.db
git commit -m "Update Grafana config"
# Ignore logs again
git update-index --skip-worktree docker/grafana/grafana.db
Gradle:
./gradlew bootRun
Please read the documentation for each module to understand the codebase.