generated from gilles/template-webapp
Initial commit
This commit is contained in:
42
docs/API.md
Normal file
42
docs/API.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Spécification API
|
||||
|
||||
Décrit les conventions d’API côté backend et les règles de compatibilité.
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé backend.
|
||||
|
||||
---
|
||||
|
||||
## 1. Versioning
|
||||
- Stratégie (URL, header, autre) : <A COMPLETER PAR AGENT>
|
||||
- Politique de dépréciation : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 2. Authentification
|
||||
- Méthode (JWT = jeton, session, OAuth = délégation d’accès) : <A COMPLETER PAR AGENT>
|
||||
- Durée de session / refresh : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 3. Conventions HTTP
|
||||
- Codes d’erreurs : <A COMPLETER PAR AGENT>
|
||||
- Idempotence (appel sans effet si répété) : <A COMPLETER PAR AGENT>
|
||||
- Pagination : <A COMPLETER PAR AGENT>
|
||||
- Tri/filtre : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 4. Formats
|
||||
- Format JSON : <A COMPLETER PAR AGENT>
|
||||
- Dates / timezone : <A COMPLETER PAR AGENT>
|
||||
- Naming (camelCase, snake_case) : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 5. Contrats
|
||||
- Erreurs : `contracts/errors.md`
|
||||
- Pagination : `contracts/pagination.md`
|
||||
- Modèle de données : `contracts/data_model.md`
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Versioning : `/api/v1`.
|
||||
- Dates : ISO-8601 en UTC.
|
||||
- Erreurs : `{ "error": { "code": "VALIDATION_ERROR" } }`.
|
||||
64
docs/ARCHITECTURE.md
Normal file
64
docs/ARCHITECTURE.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Architecture du projet
|
||||
|
||||
Ce document formalise l’architecture cible. Il doit être maintenu à jour.
|
||||
Il sert de base aux décisions techniques, aux ADR et au découpage des tâches.
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé architecture.
|
||||
|
||||
---
|
||||
|
||||
## 1. Vue d’ensemble
|
||||
- Objectif produit : <A REMPLIR - PROJET> (exemple: améliorer la traçabilité — a supprimer)
|
||||
- Type d’app (web, mobile, API) : <A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)
|
||||
- Contraintes fortes : <A REMPLIR - PROJET> (exemple: déploiement on-premise — a supprimer)
|
||||
|
||||
## 2. Principes d’architecture
|
||||
- Principes non négociables : <A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)
|
||||
- Principes d’évolution : <A COMPLETER PAR AGENT>
|
||||
- Qualités prioritaires (performance, sécurité, scalabilité) : <A REMPLIR - PROJET> (exemple: sécurité et performance — a supprimer)
|
||||
|
||||
## 3. Architecture logique
|
||||
- Modules principaux : <A COMPLETER PAR AGENT>
|
||||
- Responsabilités par module : <A COMPLETER PAR AGENT>
|
||||
- Frontend/Backend séparation : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 4. Architecture technique
|
||||
- Langages & frameworks : <A COMPLETER PAR AGENT>
|
||||
- Base de données : <A COMPLETER PAR AGENT>
|
||||
- Stockage fichiers : <A COMPLETER PAR AGENT>
|
||||
- Infra cible (cloud/self-hosted) : <A REMPLIR - PROJET> (exemple: self-hosted — a supprimer)
|
||||
|
||||
## 5. Flux de données
|
||||
- Flux principaux (lecture/écriture) : <A COMPLETER PAR AGENT>
|
||||
- Intégrations externes : <A REMPLIR - PROJET> (exemple: ERP existant — a supprimer)
|
||||
- Gestion des événements/asynchronisme : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 6. Sécurité
|
||||
- Authentification/autorisation : <A COMPLETER PAR AGENT>
|
||||
- Données sensibles : <A REMPLIR - PROJET> (exemple: emails + historiques de paiement — a supprimer)
|
||||
- Traçabilité/audit : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 7. Observabilité
|
||||
- Logs (journaux) : <A COMPLETER PAR AGENT>
|
||||
- Metrics (mesures) : <A COMPLETER PAR AGENT>
|
||||
- Alerting (alertes) : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 8. Conventions de code
|
||||
- Organisation des dossiers : <A COMPLETER PAR AGENT>
|
||||
- Standards de code : <A COMPLETER PAR AGENT>
|
||||
- Tests obligatoires : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 9. Évolution & dette
|
||||
- Zones à risque : <A REMPLIR - PROJET> (exemple: montée en charge — a supprimer)
|
||||
- Améliorations prévues : <A REMPLIR - PROJET> (exemple: reporting avancé — a supprimer)
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Modules : `auth`, `users`, `billing`, `catalog`.
|
||||
- DB : PostgreSQL + migrations.
|
||||
- Auth : JWT (jeton) + RBAC (contrôle d’accès par rôle).
|
||||
34
docs/DEPLOYMENT.md
Normal file
34
docs/DEPLOYMENT.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Déploiement
|
||||
|
||||
Décrit les environnements et le processus de déploiement.
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé DevOps.
|
||||
|
||||
---
|
||||
|
||||
## 1. Environnements
|
||||
- Local : <A COMPLETER PAR AGENT>
|
||||
- Staging (pré-production) : <A COMPLETER PAR AGENT>
|
||||
- Production : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 2. Pipeline CI/CD
|
||||
- Étapes : <A COMPLETER PAR AGENT>
|
||||
- Stratégie de release : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 3. Configuration
|
||||
- Variables d’environnement : <A COMPLETER PAR AGENT>
|
||||
- Secrets : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 4. Migrations
|
||||
- Stratégie : <A COMPLETER PAR AGENT>
|
||||
- Rollback (retour arrière) : <A COMPLETER PAR AGENT>
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- CI/CD : tests -> build -> déploiement.
|
||||
- Release : tag git + changelog.
|
||||
38
docs/OPERATIONS.md
Normal file
38
docs/OPERATIONS.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Opérations / Runbook
|
||||
|
||||
Ce document décrit comment opérer le système au quotidien.
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé exploitation.
|
||||
|
||||
---
|
||||
|
||||
## 1. Démarrage / arrêt
|
||||
- Commandes locales : <A COMPLETER PAR AGENT>
|
||||
- Commandes production : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 2. Supervision
|
||||
- Logs (journaux) : <A COMPLETER PAR AGENT>
|
||||
- Metrics (mesures) : <A COMPLETER PAR AGENT>
|
||||
- Traces : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 3. Alerting
|
||||
- Seuils critiques : <A COMPLETER PAR AGENT>
|
||||
- Canaux d’alerte : <A REMPLIR - PROJET> (exemple: email + chat interne — a supprimer)
|
||||
|
||||
## 4. Sauvegardes & restauration
|
||||
- Fréquence : <A REMPLIR - PROJET> (exemple: quotidienne — a supprimer)
|
||||
- Procédure de restauration : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 5. Incidents
|
||||
- Procédure : <A COMPLETER PAR AGENT>
|
||||
- Rôles & responsabilités : <A REMPLIR - PROJET> (exemple: admin système — a supprimer)
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Logs : centralisés via Loki.
|
||||
- Alertes : erreurs 5xx > 2% pendant 5 min.
|
||||
16
docs/PR_CHECKLIST.md
Normal file
16
docs/PR_CHECKLIST.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# Checklist PR
|
||||
|
||||
Avant de demander une revue, vérifier :
|
||||
|
||||
- Description claire et liée à un REQ (REQ = exigence produit)
|
||||
- Tests exécutés et résultat indiqué
|
||||
- Aucun secret dans le code
|
||||
- Documentation mise à jour si nécessaire
|
||||
- ADR ajouté si décision structurante
|
||||
- Migration DB mentionnée si applicable (DB = base de données)
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Tests : `make test`.
|
||||
- REQ : REQ-012.
|
||||
40
docs/SECURITY.md
Normal file
40
docs/SECURITY.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Sécurité
|
||||
|
||||
Décrit les exigences de sécurité et les règles de conformité.
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé sécurité.
|
||||
|
||||
---
|
||||
|
||||
## 1. Données & confidentialité
|
||||
- Données sensibles : <A REMPLIR - PROJET> (exemple: emails + historiques de paiement — a supprimer)
|
||||
- Classification des données : <A COMPLETER PAR AGENT>
|
||||
- Conservation / suppression : <A REMPLIR - PROJET> (exemple: 12 mois — a supprimer)
|
||||
|
||||
## 2. Authentification / autorisation
|
||||
- Modèle d’accès : <A COMPLETER PAR AGENT>
|
||||
- MFA (Multi-Factor Authentication = double facteur) / SSO (Single Sign-On = connexion unique) : <A REMPLIR - PROJET> (exemple: MFA non requis — a supprimer)
|
||||
- Gestion des rôles : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 3. Secrets & configuration
|
||||
- Stockage des secrets : <A COMPLETER PAR AGENT>
|
||||
- Rotation : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 4. Sécurité applicative
|
||||
- Validation des entrées : <A COMPLETER PAR AGENT>
|
||||
- Protection CSRF/XSS (attaques web courantes) : <A COMPLETER PAR AGENT>
|
||||
- Chiffrement en transit/au repos : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 5. Journalisation & audit
|
||||
- Événements audités : <A COMPLETER PAR AGENT>
|
||||
- Rétention : <A COMPLETER PAR AGENT>
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Données sensibles : emails, adresses, historiques de paiement.
|
||||
- Secrets : stockés dans un coffre, jamais en clair.
|
||||
34
docs/STYLEGUIDE.md
Normal file
34
docs/STYLEGUIDE.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Guide de style
|
||||
|
||||
Ce guide définit les conventions de code et de documentation.
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé.
|
||||
|
||||
---
|
||||
|
||||
## 1. Nommage
|
||||
- Variables / fonctions : <A COMPLETER PAR AGENT>
|
||||
- Fichiers / dossiers : <A COMPLETER PAR AGENT>
|
||||
- API endpoints : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 2. Formatage
|
||||
- Formatter / linter : <A COMPLETER PAR AGENT>
|
||||
- Règles principales : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 3. Tests
|
||||
- Nommage des tests : <A COMPLETER PAR AGENT>
|
||||
- Structure des tests : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 4. Documentation
|
||||
- Doc obligatoire : <A REMPLIR - PROJET> (exemple: README + ARCHITECTURE — a supprimer)
|
||||
- ADR (Architecture Decision Record) : <A COMPLETER PAR AGENT>
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Formatter : `prettier` + `eslint`.
|
||||
- Tests : `feature_x.test.ts`.
|
||||
62
docs/WORKFLOW.md
Normal file
62
docs/WORKFLOW.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Processus de développement
|
||||
|
||||
Ce document standardise le workflow de dev pour faciliter la collaboration.
|
||||
Il sert de référence aux agents et aux contributeurs.
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé architecture / dev.
|
||||
|
||||
---
|
||||
|
||||
## 1. Branches
|
||||
- Convention de nommage : <A COMPLETER PAR AGENT>
|
||||
- Branches protégées : <A REMPLIR - PROJET> (exemple: main — a supprimer)
|
||||
- Politique de merge : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 2. Commits
|
||||
- Convention (ex: conventional commits) : <A COMPLETER PAR AGENT>
|
||||
- Granularité attendue : <A REMPLIR - PROJET> (exemple: 1 feature par PR — a supprimer)
|
||||
|
||||
## 3. Pull Requests
|
||||
- Template PR : <A COMPLETER PAR AGENT>
|
||||
- Relectures requises : <A REMPLIR - PROJET> (exemple: 1 review — a supprimer)
|
||||
- Checklist obligatoire : `docs/PR_CHECKLIST.md`
|
||||
|
||||
## 4. CI/CD
|
||||
- Pipeline minimal (lint/test/build) : <A COMPLETER PAR AGENT>
|
||||
- Vérifications bloquantes : <A COMPLETER PAR AGENT>
|
||||
|
||||
## 5. Releases
|
||||
- Versioning (semver = versionnage sémantique) : <A COMPLETER PAR AGENT>
|
||||
- Tagging : <A COMPLETER PAR AGENT>
|
||||
- Release notes : `product/RELEASE_NOTES.md`
|
||||
|
||||
## 6. Qualité
|
||||
- Definition of Done (définition de terminé) : <A REMPLIR - PROJET> (exemple: tests + doc — a supprimer)
|
||||
- Tests obligatoires : <A COMPLETER PAR AGENT>
|
||||
- Mises à jour doc : <A REMPLIR - PROJET> (exemple: si impact sur l’API — a supprimer)
|
||||
|
||||
## 7. Hotfix / Urgence
|
||||
- Procédure : <A COMPLETER PAR AGENT>
|
||||
- Responsables : <A REMPLIR - PROJET> (exemple: lead dev — a supprimer)
|
||||
|
||||
---
|
||||
|
||||
## Références d’environnement (issues de `outils_dev_pref.md`)
|
||||
- Hébergement Git : Gitea
|
||||
- URL serveur Git : https://gitea.maison43.duckdns.org/
|
||||
- Utilisateur Git : gilles
|
||||
- Timezone : Europe/Paris
|
||||
- Langue : francais
|
||||
- Réseau local : 10.0.0.0/22
|
||||
- Passerelle : 10.0.0.1
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Branches : `main`, `develop`, `feat/*`, `fix/*`.
|
||||
- Commits : Conventional Commits.
|
||||
- CI : lint + tests + build.
|
||||
24
docs/adr/0001-exemple.md
Normal file
24
docs/adr/0001-exemple.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# ADR-0001 — Exemple (a supprimer)
|
||||
|
||||
- Statut : accepted
|
||||
- Date : 2026-01-27
|
||||
|
||||
## Contexte
|
||||
- Besoin d’un framework API simple et maintenable.
|
||||
|
||||
## Décision
|
||||
- Utiliser un monolithe modulaire.
|
||||
|
||||
## Alternatives considérées
|
||||
- Microservices.
|
||||
- Serverless (exécution sans serveur dédié).
|
||||
|
||||
## Conséquences
|
||||
- Déploiement plus simple.
|
||||
- Risque de croissance du monolithe.
|
||||
|
||||
## Impacts techniques
|
||||
- Découper par domaines.
|
||||
|
||||
## Notes
|
||||
- Revoir après 6 mois.
|
||||
35
docs/adr/TEMPLATE.md
Normal file
35
docs/adr/TEMPLATE.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# ADR-XXXX — <Titre>
|
||||
|
||||
- Statut : proposed | accepted | deprecated
|
||||
- Date : YYYY-MM-DD
|
||||
|
||||
---
|
||||
|
||||
## Légende des zones
|
||||
- `<A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)` : à compléter par toi selon le projet.
|
||||
- `<A COMPLETER PAR AGENT>` : à compléter par un agent spécialisé architecture.
|
||||
|
||||
---
|
||||
|
||||
## Contexte
|
||||
- <A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)
|
||||
|
||||
## Décision
|
||||
- <A COMPLETER PAR AGENT>
|
||||
|
||||
## Alternatives considérées
|
||||
- <A COMPLETER PAR AGENT>
|
||||
|
||||
## Conséquences
|
||||
- <A COMPLETER PAR AGENT>
|
||||
|
||||
## Impacts techniques
|
||||
- <A COMPLETER PAR AGENT>
|
||||
|
||||
## Notes
|
||||
- <A REMPLIR - PROJET> (exemple: à personnaliser — a supprimer)
|
||||
|
||||
---
|
||||
|
||||
## Exemple (a supprimer)
|
||||
- Décision : choisir un monolithe modulaire.
|
||||
Reference in New Issue
Block a user