mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 08:29:36 +01:00
feat: add Spring Boot ERP application with user management domain
Implement DDD-based architecture with domain, application, infrastructure, and API layers. Includes user/role management with authentication, RBAC permissions, audit logging, Liquibase migrations, and test suite.
This commit is contained in:
parent
a1df32377b
commit
ec9114aa0a
124 changed files with 18208 additions and 0 deletions
47
CLAUDE.md
Normal file
47
CLAUDE.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# Effigenix ERP – Agent Guide
|
||||
|
||||
## Stack
|
||||
Java 21, Spring Boot 3.2, PostgreSQL, Liquibase, JWT (JJWT), Maven
|
||||
|
||||
## Architektur
|
||||
DDD + Clean Architecture. Einweg-Abhängigkeit: `domain → application → infrastructure`.
|
||||
|
||||
```
|
||||
de.effigenix.
|
||||
├── domain.{bc}/ # Reine Geschäftslogik, KEINE Framework-Deps
|
||||
├── application.{bc}/ # Use Cases, Commands, DTOs
|
||||
├── infrastructure.{bc}/ # JPA, REST, Security, Audit
|
||||
└── shared/ # Shared Kernel (Result<E,T>, AuthorizationPort, Action)
|
||||
```
|
||||
|
||||
Bounded Contexts: `usermanagement` (implementiert), `production`, `quality`, `inventory`, `procurement`, `sales`, `labeling`, `filiales` (Platzhalter).
|
||||
|
||||
## Namenskonventionen
|
||||
| Artefakt | Muster | Beispiel |
|
||||
|---|---|---|
|
||||
| Use Case | `{Verb}{Noun}` | `CreateUser`, `AuthenticateUser` |
|
||||
| Command | `{Verb}{Noun}Command` | `CreateUserCommand` |
|
||||
| Domain Entity | `{Noun}` | `User`, `Role` |
|
||||
| Value Object | `{Noun}` | `UserId`, `PasswordHash`, `RoleName` |
|
||||
| Domain Error | `{Noun}Error` (sealed interface) | `UserError.UsernameAlreadyExists` |
|
||||
| JPA Entity | `{Noun}Entity` | `UserEntity` |
|
||||
| Mapper | `{Noun}Mapper` | `UserMapper` (Domain↔JPA) |
|
||||
| Repository (Domain) | `{Noun}Repository` | `UserRepository` (Interface) |
|
||||
| Repository (Impl) | `Jpa{Noun}Repository` | `JpaUserRepository` |
|
||||
| Controller | `{Noun}Controller` | `UserController` |
|
||||
| Web DTO | `{Verb}{Noun}Request` | `CreateUserRequest` |
|
||||
| Action Enum | `{Noun}Action implements Action` | `ProductionAction` |
|
||||
|
||||
## Error Handling
|
||||
Funktional via `Result<E, T>` (`shared.common.Result`). Domain-Fehler sind sealed interfaces mit Records. Keine Exceptions im Domain/Application Layer.
|
||||
|
||||
## Commits
|
||||
Conventional Commits. Kein `Co-Authored-By` Header – niemals.
|
||||
|
||||
## DDD Skill
|
||||
Für neue Bounded Contexts: `/ddd-implement` Skill verwenden. Dokumentation unter `.claude/skills/ddd-implement/SKILL.md`.
|
||||
|
||||
## Doku
|
||||
- `docs/QUICK_START.md` – Lokale Entwicklung, Docker, Seed-Daten
|
||||
- `docs/USER_MANAGEMENT.md` – Referenz-BC mit AuthorizationPort, JWT, Audit
|
||||
- `TODO.md` – Offene Aufgaben und Waves
|
||||
Loading…
Add table
Add a link
Reference in a new issue