# 📋 Backlog Phase 2 - P'titsPas

**Version** : 1.0  
**Date** : 25 Novembre 2025  
**Auteur** : Équipe PtitsPas

---

## 🎯 Objectif de ce document

Ce document liste toutes les **fonctionnalités reportées en Phase 2**. Ces fonctionnalités ne sont pas bloquantes pour le MVP (Phase 1), mais apportent de la valeur ajoutée pour la production intensive.

---

## 📊 Vue d'ensemble

| Catégorie | Nombre de tickets | Estimation |
|-----------|-------------------|------------|
| **RGPD avancé** | 3 tickets | ~8h |
| **Monitoring avancé** | 2 tickets | ~6h |
| **Statistiques & Reporting** | 4 tickets | ~16h |
| **Sauvegarde & Restauration** | 2 tickets | ~6h |
| **Documentation utilisateur** | 3 tickets | ~12h |
| **Améliorations UX** | 3 tickets | ~10h |
| **TOTAL** | **17 tickets** | **~58h** |

---

## 🔒 RGPD avancé

### Ticket P2-01 : [Backend] API Suppression compte (soft delete)
**Estimation** : 3h  
**Labels** : `backend`, `phase-2`, `rgpd`

**Description** :
Implémenter le droit à l'oubli (RGPD Article 17) avec suppression logique des comptes.

**Tâches** :
- [ ] Endpoint `DELETE /api/v1/users/:id` (soft delete)
- [ ] Ajout champ `supprime_le` TIMESTAMPTZ dans `utilisateurs`
- [ ] Anonymisation données personnelles (email, téléphone, adresse)
- [ ] Conservation données légales (acceptations CGU)
- [ ] Guards (super_admin only)
- [ ] Tests unitaires

**Justification report Phase 2** :
- Peu de demandes en phase test
- Suppression manuelle possible en attendant

---

### Ticket P2-02 : [Backend] API Export données personnelles (RGPD)
**Estimation** : 3h  
**Labels** : `backend`, `phase-2`, `rgpd`

**Description** :
Implémenter le droit à la portabilité (RGPD Article 20) avec export JSON des données personnelles.

**Tâches** :
- [ ] Endpoint `GET /api/v1/users/:id/export` (JSON)
- [ ] Export données utilisateur + enfants + acceptations
- [ ] Format JSON structuré
- [ ] Guards (utilisateur lui-même ou admin)
- [ ] Tests unitaires

**Justification report Phase 2** :
- Export manuel SQL possible en phase test
- Peu de demandes attendues

---

### Ticket P2-03 : [Backend] Cron anonymisation comptes inactifs
**Estimation** : 2h  
**Labels** : `backend`, `phase-2`, `rgpd`, `cron`

**Description** :
Anonymiser automatiquement les comptes inactifs après X mois (configurable).

**Tâches** :
- [ ] Cron job quotidien
- [ ] Détection comptes inactifs (dernière connexion > X mois)
- [ ] Anonymisation automatique
- [ ] Notification admin
- [ ] Configuration durée inactivité (table `configuration`)
- [ ] Tests

**Justification report Phase 2** :
- Pas de comptes inactifs en phase test
- Peut être fait manuellement

---

## 📊 Monitoring avancé

### Ticket P2-04 : [Backend] API Métriques système
**Estimation** : 3h  
**Labels** : `backend`, `phase-2`, `monitoring`

**Description** :
Exposer des métriques système (CPU, RAM, disque, BDD) pour monitoring.

**Tâches** :
- [ ] Endpoint `GET /api/v1/metrics` (super_admin only)
- [ ] Métriques système (CPU, RAM, disque)
- [ ] Métriques BDD (connexions, taille, requêtes lentes)
- [ ] Métriques application (requêtes/s, temps réponse)
- [ ] Format Prometheus (optionnel)
- [ ] Tests

**Justification report Phase 2** :
- Pas critique pour MVP
- Logs suffisent pour debugging initial

---

### Ticket P2-05 : [Frontend] Dashboard Monitoring
**Estimation** : 3h  
**Labels** : `frontend`, `phase-2`, `monitoring`, `admin`

**Description** :
Créer un dashboard de monitoring pour le super admin.

**Tâches** :
- [ ] Page `/admin/monitoring` (super_admin only)
- [ ] Graphiques temps réel (CPU, RAM, disque)
- [ ] Alertes (seuils configurables)
- [ ] Historique métriques (7 jours)

**Justification report Phase 2** :
- Pas critique pour MVP
- Monitoring serveur possible via outils système

---

## 📈 Statistiques & Reporting

### Ticket P2-06 : [Backend] API Statistiques dashboard
**Estimation** : 4h  
**Labels** : `backend`, `phase-2`, `statistiques`

**Description** :
Créer les endpoints pour récupérer les statistiques de l'application.

**Tâches** :
- [ ] Endpoint `GET /api/v1/stats/overview`
- [ ] Statistiques globales (comptes, enfants, AM, validations)
- [ ] Statistiques temporelles (inscriptions par mois, validations par semaine)
- [ ] Statistiques géographiques (par ville)
- [ ] Cache (rafraîchissement toutes les heures)
- [ ] Tests

**Justification report Phase 2** :
- Pas de données = pas de statistiques
- Nécessite application en production

---

### Ticket P2-07 : [Frontend] Widgets statistiques dashboard
**Estimation** : 4h  
**Labels** : `frontend`, `phase-2`, `statistiques`, `gestionnaire`

**Description** :
Afficher les statistiques dans le dashboard gestionnaire.

**Tâches** :
- [ ] Widget "Comptes en attente" (nombre)
- [ ] Widget "Comptes validés ce mois" (graphique)
- [ ] Widget "Enfants inscrits" (nombre)
- [ ] Widget "AM disponibles" (nombre)
- [ ] Graphique évolution inscriptions (6 derniers mois)

**Justification report Phase 2** :
- Besoin d'utilisateurs réels pour avoir des données
- Fonctionnalité importante pour vente, mais pas bloquante pour MVP

---

### Ticket P2-08 : [Backend] API Export rapports (CSV/PDF)
**Estimation** : 4h  
**Labels** : `backend`, `phase-2`, `reporting`

**Description** :
Permettre l'export de rapports pour les gestionnaires.

**Tâches** :
- [ ] Endpoint `GET /api/v1/reports/users` (CSV)
- [ ] Endpoint `GET /api/v1/reports/validations` (CSV)
- [ ] Endpoint `GET /api/v1/reports/summary` (PDF)
- [ ] Génération PDF (librairie PDFKit)
- [ ] Filtres (date, statut, rôle)
- [ ] Tests

**Justification report Phase 2** :
- Export manuel SQL possible en phase test
- Nécessite données réelles

---

### Ticket P2-09 : [Frontend] Écran Rapports
**Estimation** : 4h  
**Labels** : `frontend`, `phase-2`, `reporting`, `gestionnaire`

**Description** :
Créer un écran de génération de rapports pour les gestionnaires.

**Tâches** :
- [ ] Page `/admin/rapports` (gestionnaire/admin)
- [ ] Sélection type de rapport (utilisateurs, validations, synthèse)
- [ ] Filtres (date, statut, rôle)
- [ ] Prévisualisation
- [ ] Téléchargement (CSV/PDF)

**Justification report Phase 2** :
- Pas prioritaire pour MVP
- Nécessite données réelles

---

## 💾 Sauvegarde & Restauration

### Ticket P2-10 : [Infra] Script backup PostgreSQL automatique
**Estimation** : 3h  
**Labels** : `infra`, `phase-2`, `backup`

**Description** :
Créer un script de sauvegarde automatique de la base de données.

**Tâches** :
- [ ] Script `backup.sh` avec `pg_dump`
- [ ] Compression (gzip)
- [ ] Rotation (garder 30 derniers jours)
- [ ] Cron job quotidien (3h du matin)
- [ ] Notification email en cas d'échec
- [ ] Tests restauration

**Justification report Phase 2** :
- Pas bloquant pour développement
- Backup manuel possible en phase test
- À faire avant mise en production

---

### Ticket P2-11 : [Doc] Guide sauvegarde & restauration
**Estimation** : 3h  
**Labels** : `documentation`, `phase-2`, `backup`

**Description** :
Documenter les procédures de sauvegarde et restauration pour les admins sys.

**Tâches** :
- [ ] Procédure sauvegarde manuelle
- [ ] Procédure restauration
- [ ] Configuration cron
- [ ] Troubleshooting
- [ ] Exemples de commandes
- [ ] Checklist pré-restauration

**Justification report Phase 2** :
- Documentation technique, pas bloquante pour MVP
- À faire avant mise en production

---

## 📚 Documentation utilisateur

### Ticket P2-12 : [Doc] Guide utilisateur Gestionnaire
**Estimation** : 4h  
**Labels** : `documentation`, `phase-2`, `formation`

**Description** :
Rédiger le guide utilisateur pour les gestionnaires.

**Tâches** :
- [ ] Connexion et première utilisation
- [ ] Consultation des demandes
- [ ] Validation/Refus de comptes
- [ ] Gestion des paramètres
- [ ] FAQ gestionnaire
- [ ] Captures d'écran

**Justification report Phase 2** :
- Formation présentiel prioritaire pour premiers utilisateurs
- Documentation nécessaire pour scalabilité

---

### Ticket P2-13 : [Doc] Guide utilisateur Parent/AM
**Estimation** : 4h  
**Labels** : `documentation`, `phase-2`, `formation`

**Description** :
Rédiger le guide utilisateur pour les parents et assistantes maternelles.

**Tâches** :
- [ ] Inscription étape par étape
- [ ] Création du mot de passe
- [ ] Connexion
- [ ] Utilisation de l'application
- [ ] FAQ parent/AM
- [ ] Captures d'écran

**Justification report Phase 2** :
- Formation présentiel prioritaire
- Documentation nécessaire pour scalabilité

---

### Ticket P2-14 : [Doc] Vidéos tutoriels
**Estimation** : 4h  
**Labels** : `documentation`, `phase-2`, `formation`, `video`

**Description** :
Créer des vidéos tutoriels pour les utilisateurs.

**Tâches** :
- [ ] Vidéo "Inscription parent" (3-5 min)
- [ ] Vidéo "Inscription AM" (3-5 min)
- [ ] Vidéo "Validation comptes gestionnaire" (3-5 min)
- [ ] Vidéo "Configuration initiale admin" (5-7 min)
- [ ] Hébergement (YouTube privé ou serveur)

**Justification report Phase 2** :
- Pas bloquant pour MVP
- Utile pour scalabilité et autonomie utilisateurs

---

## 🎨 Améliorations UX

### Ticket P2-15 : [Frontend] Mode sombre
**Estimation** : 3h  
**Labels** : `frontend`, `phase-2`, `ux`

**Description** :
Ajouter un mode sombre à l'application.

**Tâches** :
- [ ] Thème sombre (couleurs, contrastes)
- [ ] Toggle mode clair/sombre
- [ ] Sauvegarde préférence utilisateur
- [ ] Adaptation tous les écrans

**Justification report Phase 2** :
- Nice-to-have, pas bloquant
- Améliore confort utilisateur

---

### Ticket P2-16 : [Frontend] Notifications push (optionnel)
**Estimation** : 4h  
**Labels** : `frontend`, `phase-2`, `ux`, `notifications`

**Description** :
Ajouter des notifications push pour les événements importants.

**Tâches** :
- [ ] Service Worker (PWA)
- [ ] Notification "Compte validé"
- [ ] Notification "Nouveau message" (si messagerie)
- [ ] Gestion permissions
- [ ] Paramètres notifications

**Justification report Phase 2** :
- Nice-to-have, pas bloquant
- Nécessite PWA ou app mobile

---

### Ticket P2-17 : [Frontend] Accessibilité (WCAG 2.1)
**Estimation** : 3h  
**Labels** : `frontend`, `phase-2`, `ux`, `a11y`

**Description** :
Améliorer l'accessibilité de l'application (conformité WCAG 2.1).

**Tâches** :
- [ ] Audit accessibilité (Lighthouse, axe)
- [ ] Correction contrastes
- [ ] Attributs ARIA
- [ ] Navigation clavier
- [ ] Lecteur d'écran (test)

**Justification report Phase 2** :
- Amélioration continue
- Pas bloquant pour MVP
- Important pour collectivités (obligation légale)

---

## 📋 Priorisation Phase 2

### Priorité Haute (à faire en premier)
1. **Sauvegarde & Restauration** (Tickets P2-10, P2-11) → Avant mise en production
2. **Statistiques** (Tickets P2-06, P2-07) → Argument de vente
3. **Documentation utilisateur** (Tickets P2-12, P2-13) → Scalabilité

### Priorité Moyenne
4. **RGPD avancé** (Tickets P2-01, P2-02, P2-03) → Conformité
5. **Reporting** (Tickets P2-08, P2-09) → Utile pour gestionnaires

### Priorité Basse
6. **Monitoring avancé** (Tickets P2-04, P2-05) → Nice-to-have
7. **Améliorations UX** (Tickets P2-15, P2-16, P2-17) → Confort

---

## 🚀 Critères de passage en Phase 2

La Phase 2 peut commencer quand :
- ✅ Phase 1 terminée (61 tickets)
- ✅ Application déployée en production (au moins 1 collectivité)
- ✅ Utilisateurs réels (au moins 10 comptes validés)
- ✅ Feedback terrain collecté
- ✅ Bugs critiques corrigés

---

## 📊 Estimation globale Phase 2

**Total** : 17 tickets  
**Estimation** : ~58h de développement

**Planning suggéré** :
- Sprint 1 (2 semaines) : Sauvegarde + Statistiques (26h)
- Sprint 2 (2 semaines) : Documentation + RGPD (24h)
- Sprint 3 (1 semaine) : Reporting + Améliorations UX (8h)

---

**Dernière mise à jour** : 25 Novembre 2025  
**Version** : 1.0  
**Statut** : ✅ Backlog Phase 2 défini

