Files
poupoule/cahierDesCharges.md
2026-09-25 11:02:14 +02:00

192 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.