915d3ce3a7
- Angular 19 avec routing, SCSS, PWA (Service Worker + manifest) - Couverture de tests ≥ 90% configurée dans karma.conf.js - Docker pour tests isolés (Dockerfile.test + docker-compose.test.yml) - Image de production multi-stage (Dockerfile + nginx.conf) - Hook pre-commit bloquant si tests échouent ou couverture < 90% - CI Gitea (.gitea/workflows/ci.yml) : tests + build/push image Docker - Versioning SemVer depuis 0.0.1 avec scripts npm version:* - Feature flags par environnement (src/environments/) - Documentation fonctionnelle (docs/functional/) et technique (docs/technical/) - CLAUDE.md avec toutes les règles de développement Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# Documentation technique — Olhar PWA
|
|
|
|
## Stack technique
|
|
|
|
| Composant | Technologie | Version |
|
|
|-----------|-------------|---------|
|
|
| Framework | Angular | 19.x |
|
|
| Style | SCSS | — |
|
|
| PWA | @angular/pwa + Service Worker | 19.x |
|
|
| Tests | Karma + Jasmine + Chrome headless | — |
|
|
| Conteneur tests | Docker (node:24-slim + Chromium) | — |
|
|
| CI | Hook pre-commit Docker | — |
|
|
|
|
## Architecture
|
|
|
|
```
|
|
src/
|
|
├── app/
|
|
│ ├── core/ # Services globaux, guards, interceptors
|
|
│ ├── features/ # Modules fonctionnels (un dossier par feature)
|
|
│ │ ├── auth/
|
|
│ │ ├── photos/
|
|
│ │ └── sorting/
|
|
│ ├── shared/ # Composants, pipes, directives réutilisables
|
|
│ └── app.routes.ts # Routes principales
|
|
├── environments/ # Feature flags et config par environnement
|
|
└── styles.scss # Styles globaux
|
|
```
|
|
|
|
## Feature flags
|
|
|
|
Les feature flags permettent à l'application de fonctionner sans API backend.
|
|
Voir `src/environments/environment.ts` et `src/environments/environment.prod.ts`.
|
|
|
|
Pattern : chaque service vérifie `environment.features.<flag>` avant tout appel HTTP.
|
|
Si le flag est `false`, des données mockées sont retournées depuis `src/app/core/mocks/`.
|
|
|
|
## Tests
|
|
|
|
- Couverture minimale : **90%** (statements, branches, functions, lines)
|
|
- Exécution via Docker pour isolation et reproductibilité
|
|
- Hook `pre-commit` bloque si tests échouent ou couverture < 90%
|
|
|
|
## Documents techniques par domaine
|
|
|
|
| Domaine | Document |
|
|
|---------|----------|
|
|
| Architecture générale | Ce fichier |
|
|
| Service photos | [photo-service.md](photo-service.md) |
|
|
| Authentification | [auth.md](auth.md) |
|
|
| PWA & Service Worker | [pwa.md](pwa.md) |
|