192 lines
6.7 KiB
Markdown
192 lines
6.7 KiB
Markdown
# 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.
|