petitspas/docs/AUDIT.md
Julien Martin 48b01ed3fe docs: Ajout de la documentation complète (API, Database, Audit)
- Création du dossier docs/ pour centraliser la documentation
- Ajout de API.md : documentation complète de tous les endpoints
- Ajout de DATABASE.md : schéma complet de la base de données
- Ajout de AUDIT.md : audit du projet YNOV
- Déplacement des README-ARCHITECTURE.md et README-DEPLOYMENT.md vers docs/
- Ajout d'un README.md index dans docs/
2025-11-24 21:39:01 +01:00

5.0 KiB

🕵️ Rapport d'Audit Technique & Fonctionnel - Projet P'titsPas (Ynov)

Date : 23 Novembre 2025
Auditeur : Assistant IA (Deploy Infra V2)
Objet : État des lieux avant reprise des développements pour finalisation.


🚨 Synthèse Exécutive

Le projet dispose d'une base technique saine (NestJS, PostgreSQL, Docker) et d'une structure de code propre. Cependant, plusieurs fonctionnalités critiques du Cahier des Charges (CDC) sont manquantes ou incomplètes, rendant l'application inutilisable en l'état pour le workflow principal (Inscription -> Validation -> Utilisation).

Score d'avancement estimé : 25%
(Backend: 60%, Frontend: 10% [Coquille vide], Infra: 80%)


1. 🏗️ Infrastructure & Docker

Points Positifs

  • Stack propre : Architecture micro-services (Backend, Frontend, Database, PgAdmin).
  • Configuration Traefik : Les labels et le routing (ynov.ptits-pas.fr) sont corrects.
  • Images optimisées : Utilisation de builds multi-stage.

⚠️ Problèmes & Correctifs

  1. Processus Zombies (Critique) :
    • Constat : Plus de 9000 processus zombies détectés.
    • Cause : Le conteneur Backend lance node en PID 1 sans gestionnaire de signaux (init).
    • Action : Ajouter tini ou dumb-init dans le Dockerfile Backend.
  2. Base de Données (Seed) :
    • Constat : Le script d'initialisation (01_init.sql) insère un administrateur avec le mot de passe "admin123" en clair.
    • Impact : Impossible de se connecter (le Backend attend un hash Bcrypt).
    • Action : Remplacer l'insertion SQL par un vrai hash ou un script de seed NestJS.

2. 🔙 Backend (NestJS)

Points Positifs

  • Architecture : Modulaire (Auth, User, Parents, Enfants...).
  • Qualité Code : Typage fort, DTOs validés (class-validator), Entités TypeORM claires.

Écarts Fonctionnels Majeurs

Fonctionnalité État Problème Identifié
Envoi d'E-mails 🔴 ABSENT Aucune librairie mail (Nodemailer) installée. Aucune logique d'envoi.
Inscription 🟠 Incomplet L'utilisateur est créé, mais sa fiche métier (Parents ou AssistanteMaternelle) n'est pas générée. Elle n'est créée qu'à la validation, ce qui empêche le remplissage du profil en amont.
Validation Compte 🟠 Partiel Le changement de statut fonctionne, mais aucune notification mail n'est envoyée (requis par CDC).
Gestionnaire OK La route de création par SuperAdmin existe et est sécurisée.

3. 📱 Frontend (Flutter)

Points Positifs

  • Structure du projet cohérente.
  • Authentification (Login) implémentée.

Écarts Fonctionnels Majeurs

Écran / Fonction État Problème Identifié
Création Gestionnaire 🔴 VIDE Le fichier gestionnaires_create.dart contient uniquement un texte placeholder. Aucun formulaire.
Dashboard Admin 🔴 FAKE L'écran existe mais affiche des données simulées "en dur" (Mock). Non connecté à l'API. Impossible de valider les comptes.
Dashboard Parent 🔴 FAKE L'écran existe, architecture propre (Service/Controller), mais toutes les données (Enfants, Contrats) sont mockées (TODO: API Call).
Dashboard AssMat 🔴 INEXISTANT Aucun écran trouvé pour l'accueil des Assistantes Maternelles.
Contact Support 🔴 Fake Bouton présent mais code vide (// TODO).
Signalement Bug 🔴 Fake Idem, code non implémenté.

4. 📝 Plan d'Action Prioritaire (Roadmap de Réparation)

Pour rendre l'application fonctionnelle selon le "Workflow attendu", voici les étapes techniques à réaliser dans l'ordre :

Étape 1 : Réparation Socle (Infra & Data)

  1. Fixer le Dockerfile Backend (Tini pour les zombies).
  2. Fixer le mot de passe Admin : Créer un script pour mettre à jour le hash du mot de passe admin123 en base de données.

Étape 2 : Implémentation Backend (Mail & Workflow)

  1. Installer nodemailer et configurer le service SMTP (via le serveur mail Host).
  2. Corriger register : Créer l'entité Parent/AssMat dès l'inscription (vide mais existante).
  3. Corriger validateUser : Ajouter l'envoi de mail de notification (Validé/Refusé).

Étape 3 : Implémentation Frontend (Écrans Manquants)

  1. Développer l'écran "Créer Gestionnaire" : Formulaire (Nom, Prénom, Email, MDP) + Appel API.
  2. Vérifier/Finir le Dashboard Gestionnaire : Liste des utilisateurs "En attente" + Boutons Valider/Refuser.

Étape 4 : Connexion (Workflow Complet)

  1. Tester le cycle complet :
    • Login SuperAdmin -> Création Gestionnaire.
    • Login Gestionnaire -> Vue vide.
    • Inscription Parent -> Apparition dans la liste Gestionnaire.
    • Validation par Gestionnaire -> Mail reçu par Parent.
    • Login Parent -> Accès autorisé.

Ce document sert de référence pour la suite des travaux.