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.

Next Steps

Copyright © 2026