First designs for ui
This commit is contained in:
99
CLAUDE.md
Normal file
99
CLAUDE.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Build Commands
|
||||
|
||||
### Backend (Maven)
|
||||
```bash
|
||||
# Full build and deploy
|
||||
mvn deploy -U -f pom.xml
|
||||
|
||||
# Run integration tests with Docker
|
||||
mvn deploy -P docker -f hartmann-foto-documentation-docker/pom.xml
|
||||
```
|
||||
|
||||
### Frontend (Flutter)
|
||||
```bash
|
||||
cd hartmann-foto-documentation-frontend
|
||||
|
||||
# Install dependencies
|
||||
flutter pub get
|
||||
|
||||
# Build for web
|
||||
flutter build web --no-tree-shake-icons
|
||||
|
||||
# Run tests with coverage
|
||||
flutter test --coverage --reporter=json
|
||||
|
||||
# Run a single test file
|
||||
flutter test test/path/to/test_file.dart
|
||||
|
||||
# Static analysis
|
||||
flutter analyze
|
||||
|
||||
# Generate localization files
|
||||
flutter gen-l10n
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
### Multi-Module Maven Project
|
||||
- **hartmann-foto-documentation-app** - Backend REST API (jar)
|
||||
- **hartmann-foto-documentation-web** - WAR deployment package
|
||||
- **hartmann-foto-documentation-docker** - Docker/integration tests
|
||||
- **hartmann-foto-documentation-frontend** - Flutter mobile/web app
|
||||
|
||||
### Technology Stack
|
||||
- **Backend:** Java 21, WildFly 26.1.3, Jakarta EE 10, Hibernate 6.2, PostgreSQL 11, JWT auth
|
||||
- **Frontend:** Flutter 3.3.0+, Provider for state management, go_router for navigation
|
||||
- **API Docs:** Swagger/OpenAPI v3
|
||||
|
||||
### Backend Layered Architecture
|
||||
```
|
||||
REST Resources → Services (@Stateless EJBs) → QueryService → JPA Entities
|
||||
```
|
||||
|
||||
Key packages in `hartmann-foto-documentation-app/src/main/java/marketing/heyday/hartmann/fotodocumentation/`:
|
||||
- `core/model/` - JPA entities (User, Right, Customer, Picture, JwtRefreshToken)
|
||||
- `core/service/` - Business logic with AbstractService base class
|
||||
- `core/query/` - QueryService for database operations
|
||||
- `rest/` - JAX-RS resources and value objects
|
||||
|
||||
### Frontend Structure
|
||||
```
|
||||
lib/
|
||||
├── main.dart # Entry point (MaterialApp.router)
|
||||
├── controller/ # Business logic controllers
|
||||
├── pages/ # Feature-based UI (login/, customer/)
|
||||
├── dto/ # Data Transfer Objects
|
||||
├── utils/ # DI container, theme, routing
|
||||
└── l10n/ # Localization (German supported)
|
||||
```
|
||||
|
||||
### Authentication
|
||||
- JWT token-based authentication with refresh tokens
|
||||
- WildFly Elytron security realm
|
||||
- Bearer token auth for REST endpoints
|
||||
- User passwords stored with salt-based hashing
|
||||
|
||||
### Database Entities
|
||||
- User ↔ Right (many-to-many via user_to_right)
|
||||
- Customer → Picture (one-to-many)
|
||||
- JwtRefreshToken (device/IP tracking)
|
||||
|
||||
Named queries pattern: `@NamedQuery` on entities (e.g., `User.BY_USERNAME`)
|
||||
|
||||
## Local Development
|
||||
|
||||
Docker Compose provides PostgreSQL and WildFly:
|
||||
```bash
|
||||
cd hartmann-foto-documentation-docker
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
Port mappings: WildFly HTTP (8180), Management (9990), SMTP (8280)
|
||||
|
||||
## CI/CD
|
||||
|
||||
Jenkins pipeline with SonarQube integration. Build runs on macOS agent with JDK 21.
|
||||
Reference in New Issue
Block a user