# Cahier des charges — Mon Poulailler ## 1. Contexte Le projet **Mon Poulailler** vise à créer une application web de gestion d’un poulailler. Dans la gestion quotidienne d’un poulailler, il est important de connaître : * le nombre de poules et de coqs ; * l’identité et les caractéristiques de chaque animal ; * l’état de santé ; * les périodes de ponte (début, durée, fin) ; * les périodes de couvage ; * l’historique des animaux décédés. L’application doit permettre de suivre ces informations de façon centralisée et à jour. ## 2. Objectif Disposer d’une vue claire et à jour de l’état du poulailler : effectifs, animaux actifs, périodes de ponte et de couvage, et archives. ## 3. Périmètre ### 3.1 Inclus * Authentification (création de comptes, connexion) ; * gestion des poules et des coqs ; * suivi des périodes de ponte et de couvage ; * statistiques d’effectifs en temps réel ; * archivage des animaux décédés ; * déploiement local via Docker. ### 3.2 Hors périmètre (version initiale) * Application mobile native ; * notifications push / alertes automatiques ; * suivi vétérinaire détaillé (ordonnances, traitements) ; * gestion multi-poulaillers ; * synchronisation cloud / multi-appareils hors réseau local ; * inventaire des œufs au quotidien (sauf si lié explicitement à une période de ponte). ## 4. Utilisateurs | Profil | Description | Droits principaux | | --- | --- | --- | | Administrateur | Responsable du poulailler / de l’application | Créer des comptes, gérer tous les animaux | | Utilisateur | Personne qui s’occupe des poules | Gérer les poules et les coqs (sans création de comptes) | ## 5. Fonctionnalités ### 5.1 Authentification et comptes * Création de comptes (réservée à l’administrateur) ; * connexion par identifiant et mot de passe ; * déconnexion ; * deux profils : **Admin** et **Utilisateur**. | Action | Admin | Utilisateur | | --- | --- | --- | | Se connecter / se déconnecter | Oui | Oui | | Créer un compte | Oui | Non | | Gérer poules et coqs | Oui | Oui | | Consulter les statistiques | Oui | Oui | | Consulter les archives | Oui | Oui | ### 5.2 Gestion des animaux (poules et coqs) Pour chaque animal, l’application permet de renseigner et consulter : | Donnée | Description | | --- | --- | | Identifiant unique | Identifiant technique unique dans l’application | | Photo | Image de l’animal | | Couleur de bague | Couleur de la bague d’identification | | Numéro de bague | Numéro associé à la bague | | Date de naissance | Date de naissance (ou date d’arrivée si inconnue) | | Type | Poule ou coq | | État de santé | Indication simple de l’état de santé | | Date de fin de vie | Renseignée lorsque l’animal décède | Actions attendues : * créer un animal ; * modifier ses informations ; * consulter sa fiche détaillée ; * marquer un animal comme décédé (passe en archive) ; * lister les animaux actifs ; * lister les animaux archivés (décédés). ### 5.3 Périodes de ponte (poules uniquement) * Enregistrer une ou plusieurs périodes de ponte ; * pour chaque période : date de début, date de fin (optionnelle si en cours), éventuellement une remarque ; * indiquer si la poule pond actuellement. ### 5.4 Périodes de couvage (poules uniquement) * Enregistrer une ou plusieurs périodes de couvage ; * pour chaque période : date de début, date de fin (optionnelle si en cours), éventuellement une remarque ; * indiquer si la poule est actuellement en couvage. ### 5.5 Statistiques Affichage en temps réel (après chaque action ou au chargement) : * nombre de poules actives ; * nombre de coqs actifs ; * nombre total d’animaux actifs ; * nombre de poules actuellement en couvage ; * nombre de poules actuellement en ponte (souhaitable). ### 5.6 Archives * Vue dédiée aux animaux décédés ; * conservation des informations (identité, bagues, dates, historique de ponte / couvage) ; * pas de suppression définitive obligatoire en v1 (possibilité de la prévoir plus tard). ## 6. Exigences non fonctionnelles | Exigence | Attendu | | --- | --- | | Accessibilité | Interface utilisable sur ordinateur et tablette (responsive de base) | | Performance | Réponses rapides sur un usage local (peu d’utilisateurs simultanés) | | Sécurité | Mots de passe stockés de façon sécurisée (hachage) ; accès réservé aux utilisateurs authentifiés | | Disponibilité | Application disponible en local via Docker | | Ergonomie | Navigation simple : liste, fiche animal, statistiques, archives | | Données | Persistance via fichiers JSON ; sauvegarde manuelle possible en copiant les fichiers | ## 7. Spécifications techniques | Élément | Choix | | --- | --- | | Type d’application | Application web | | Hébergement | Local, via Docker | | Front-end | HTML, CSS, JavaScript | | Back-end | JavaScript (Node.js recommandé) | | Base de données | Fichiers JSON (stockage documentaire) | ### 7.1 Architecture cible (indicatif) * Interface web servie par le back-end ; * API métier pour authentification et CRUD animaux / périodes ; * persistance dans un ou plusieurs fichiers JSON montés en volume Docker. ### 7.2 Contraintes techniques * Fonctionnement hors cloud, en environnement local ; * pas de dépendance à une base relationnelle en v1 ; * les données doivent survivre à un redémarrage du conteneur (volume Docker). ## 8. Modèle de données (indicatif) ### Utilisateur * `id`, `login`, `motDePasseHash`, `profil` (`admin` | `utilisateur`) ### Animal * `id`, `type` (`poule` | `coq`), `photo`, `couleurBague`, `numeroBague`, `dateNaissance`, `etatSante`, `dateFinDeVie` (nullable), `actif` (booléen) ### PeriodePonte * `id`, `idAnimal`, `dateDebut`, `dateFin` (nullable), `remarque` ### PeriodeCouvage * `id`, `idAnimal`, `dateDebut`, `dateFin` (nullable), `remarque` ## 9. Critères d’acceptation (v1) * Un administrateur peut créer un compte utilisateur et se connecter. * Un utilisateur connecté peut ajouter une poule avec photo, bague, date de naissance. * Un utilisateur peut enregistrer une période de ponte et une période de couvage. * Les statistiques affichent correctement le nombre de poules, de coqs et de poules en couvage. * Marquer une poule comme décédée la retire de la liste active et l’ajoute aux archives. * L’application démarre via Docker et conserve les données après redémarrage. ## 10. Livrables * Code source de l’application ; * `Dockerfile` / `docker-compose` pour le lancement local ; * documentation courte de démarrage (installation, comptes, sauvegarde des JSON) ; * le présent cahier des charges à jour. ## 11. Evolutions possibles (hors v1) * Suivi quotidien des œufs collectés ; * alertes (fin de ponte, couvage prolongé) ; * export CSV / PDF ; * multi-poulaillers ; * application mobile.