Getting Started
Project Structure
Understand the organization of the LAREX repository.
Project Structure
This page documents the current structure of the LAREX repository.
Root Directory
larex/
├── .github/ # GitHub configuration and workflows
├── backend/ # Spring Boot backend
├── frontend/ # Nuxt frontend
├── keycloak-theme/ # Keycloak login theme (Keycloakify)
├── docs/ # Documentation site (Nuxt Content)
├── config/ # Runtime config artifacts (for example Keycloak realm/theme)
├── deployment/ # Deployment environment templates
├── scripts/ # Utility scripts
├── traefik/ # Traefik configuration
├── compose.yaml # Local compose stack
├── compose.prod.yaml # Production compose stack
├── compose.prod.local.yaml # Production preset (local Keycloak)
├── compose.prod.external-keycloak.yaml
├── compose.prod.traefik.yaml
├── Taskfile.yml # Root task runner entries
├── VERSION # Canonical application version
└── README.md
Backend (backend/)
backend/
├── src/main/java/de/uniwue/zpd/dachs/larex/backend/
│ ├── BackendApplication.java
│ ├── config/ # Application/security/resource config
│ ├── controller/ # REST controllers
│ ├── dto/ # API DTOs
│ ├── entity/ # JPA entities
│ ├── exception/ # Exception handling
│ ├── repository/ # Data access
│ ├── scheduler/ # Scheduled jobs
│ ├── service/ # Business logic
│ └── util/ # Shared backend utilities
├── src/main/resources/
│ ├── application.yaml
│ └── application-prod.yaml
├── build.gradle.kts
├── settings.gradle.kts
├── Dockerfile
└── Dockerfile.prod
Frontend (frontend/)
frontend/
├── app/
│ ├── components/ # UI components
│ ├── composables/ # Reusable composition logic
│ ├── pages/ # Route pages
│ ├── stores/ # Pinia stores
│ ├── services/ # Client-side services
│ ├── session/ # Editor/session state helpers
│ ├── commands/ # Editor command pattern implementation
│ ├── models/ # Domain models
│ ├── utils/ # Frontend utilities
│ ├── webgl/ # WebGL rendering pipeline
│ └── workers/ # Web workers
├── server/ # Nuxt server runtime (BFF API proxy/routes/utils)
├── shared/ # Shared types
├── schema/ # Schema assets
├── pagecontent.xsd
├── nuxt.config.ts
├── Dockerfile
└── Dockerfile.prod
Keycloak Theme (keycloak-theme/)
keycloak-theme/
├── src/
│ ├── login/ # Login page templates
│ ├── components/ # Theme UI components
│ ├── lib/ # Theme utilities
│ └── hooks/
├── public/
├── vite.config.ts
└── package.json
Documentation (docs/)
docs/
├── content/ # Markdown content
├── components/ # Docs-specific Vue components
├── assets/
├── public/
└── nuxt.config.ts
CI/CD Definitions
Repository workflows live in:
.github/workflows/ci.yml.github/workflows/release.yml
(See CI/CD for behavior details.)
Versioning
VERSION is the primary version source, and scripts/version-sync.sh is used to propagate version updates across packages.