# Mon Poulailler Application web simple pour gérer un poulailler : animaux, ponte, couvage, archives. Conçue pour être **lisible par un débutant** : peu de fichiers, JavaScript classique, données en JSON. ## Prérequis - [Node.js](https://nodejs.org/) (version 18 ou plus), **ou** - [Docker](https://www.docker.com/) + Docker Compose ## Démarrage rapide (sans Docker) ```bash npm install npm start ``` Ouvre ensuite : [http://localhost:3000](http://localhost:3000) ## Démarrage avec Docker ```bash docker compose up --build ``` Puis : [http://localhost:3000](http://localhost:3000) Pour arrêter : ```bash docker compose down ``` ## Compte par défaut | Login | Mot de passe | Profil | | --- | --- | --- | | `admin` | `admin123` | administrateur | Change ce mot de passe en créant un nouveau compte admin, puis en n'utilisant plus celui-ci (ou en modifiant le fichier JSON). ## Utilisation 1. Se connecter avec le compte admin 2. Créer des comptes utilisateurs (menu **Comptes**, réservé à l'admin) 3. Ajouter des poules / coqs depuis la page d'accueil 4. Ouvrir une fiche animal pour modifier, enregistrer ponte / couvage, ou archiver 5. Consulter les **Archives** pour les animaux décédés ## Structure du projet ``` poupoule/ ├── server.js # Serveur Node.js (routes API) ├── lib/donnees.js # Lecture / écriture des fichiers JSON ├── data/ # Données persistantes (JSON) │ ├── utilisateurs.json │ ├── animaux.json │ ├── periodesPonte.json │ └── periodesCouvage.json ├── uploads/ # Photos des animaux ├── public/ # Interface (HTML, CSS, JS) │ ├── index.html # Liste + statistiques │ ├── animal.html # Fiche détaillée │ ├── archives.html │ ├── comptes.html │ ├── connexion.html │ ├── css/style.css │ └── js/ # Scripts par page ├── Dockerfile ├── docker-compose.yml └── cahierDesCharges.md ``` ## Sauvegarde des données Les informations sont stockées dans le dossier `data/` (fichiers JSON) et les photos dans `uploads/`. Pour sauvegarder : **copie ces deux dossiers**. Avec Docker, ils sont montés en volumes : ils restent sur ta machine même si le conteneur est reconstruit. ## Technologies | Couche | Choix | | --- | --- | | Front | HTML, CSS, JavaScript (sans framework) | | Back | Node.js + Express | | Données | Fichiers JSON | | Auth | Sessions + mots de passe hachés (bcrypt) | ## Documentation métier Voir [cahierDesCharges.md](cahierDesCharges.md).