🩁 Projet NSI – Gestion d’un Parc Animalier

🎯 Objectifs du projet

À travers ce projet, vous allez :

  • Concevoir une base de donnĂ©es relationnelle complĂšte
  • Construire un schĂ©ma relationnel
  • CrĂ©er une base MySQL avec des tables et des contraintes
  • InsĂ©rer et manipuler des donnĂ©es via SQL
  • Écrire un script Python connectĂ© Ă  MySQL
  • GĂ©nĂ©rer des statistiques et des graphiques Matplotlib
  • CrĂ©er une mini-application Web affichant les donnĂ©es et les graphiques

đŸ§© 1. ModĂ©lisation de la base

Travail demandé

  1. Proposer un schéma relationnel
  2. Traduire ce schéma relationnel en instructions SQL (CREATE TABLE)

Entités minimales à modéliser

  • Animal (id, nom, espĂšce, sexe, date_naissance, poids, enclos_id
)
  • EspĂšce (id, nom, famille, rĂ©gime alimentaire)
  • Enclos (id, nom, superficie, biome)
  • Nourrissage (id, animal_id, date, type_nourriture, quantite)
  • Intervention vĂ©tĂ©rinaire (id, animal_id, date, motif, compte_rendu)

đŸ—„ïž 2. Base MySQL

Travail demandé

Vous créerez :

  1. les tables avec clés primaires et étrangÚres
  2. un jeu de données cohérent (ou import depuis CSV fourni)
  3. un fichier .sql comprenant les requĂȘtes demandĂ©es

RequĂȘtes obligatoires

  • Liste des animaux d’un enclos donnĂ©
  • RĂ©partition des animaux par espĂšce
  • Dernier nourrissage de chaque animal
  • Animaux avec intervention vĂ©tĂ©rinaire ce mois-ci
  • Poids moyen par espĂšce
  • Animaux les plus nourris
  • DensitĂ© des enclos (nombre d’animaux / superficie)

🐍 3. Script Python

Travail demandé

Vous développerez un script Python qui :

  1. Se connecte Ă  MySQL (avec mysql.connector)
  2. Permet :

  3. d’ajouter un animal,

  4. d’enregistrer un nourrissage,
  5. d’enregistrer une intervention,
  6. d’exĂ©cuter les requĂȘtes SQL,
  7. de générer des statistiques.

  8. GĂ©nĂšre des graphiques (avec Matplotlib) Les graphiques devront ĂȘtre enregistrĂ©s en fichier PNG (ex : static/stats/especes.png).

Graphiques obligatoires

  1. Histogramme du nombre d’animaux par espùce
  2. Courbe de la quantité totale de nourriture consommée par jour
  3. Diagramme en barres du nombre d’interventions vĂ©tĂ©rinaires par mois

🌐 4. Mini-site Web

Vous créerez une petite application Web permettant :

  1. Pages données :
  2. Liste des animaux (avec filtre : espĂšce ou enclos)
  3. Fiche détaillée d'un animal
  4. Liste des interventions
  5. Liste des nourrissages

  6. Pages statistiques pour :

  7. les chiffres clĂ©s (nombre d’animaux, espĂšces
)
  8. les graphiques Matplotlib générés par Python

  9. Intégration des graphiques Matplotlib Les images seront générées par Python puis affichées dans la page HTML via :

    HTML
        <img src="/static/stats/especes.png" alt="Répartition par espÚce">
    

  10. Structure de base conseillée

    Text Only
    ├── app.py
    ├── templates
        ├── index.html
        ├── animaux.html
        ├── stats.html
    ├── static
        ├── css
        ├── stats
            ├── another.js
            ├── nourriture.png
            └── interventions.png
    

📝 5. Rendu attendu

  • schĂ©ma relationnel
  • Scripts SQL de crĂ©ation des tables
  • Fichier de donnĂ©es (INSERT ou CSV)
  • Script Python complet
  • Graphiques Matplotlib enregistrĂ©s et intĂ©grĂ©s dans les pages
  • Mini-site Web fonctionnel
  • README expliquant le fonctionnement de l’application  

đŸŸ 6. Fichiers CSV

📄 especes.csv

Text Only
    id,nom,famille,regime_alimentaire
    1,Lion,Félin,Carnivore
    2,ZĂšbre,ÉquidĂ©s,Herbivore
    3,Perroquet,Psittacidés,Omnivore
    4,Pingouin,Sphéniscidés,Piscivore
    5,Tortue,Cheloniidae,Herbivore

📄 enclos.csv

Text Only
    id,nom,superficie,biome
    1,Savane,2500,Savane africaine
    2,Marais,1800,Zone humide
    3,VoliĂšre,600,Tropical
    4,Glacier,2000,Climat froid

📄 animaux.csv

Text Only
    id,nom,espece_id,sexe,date_naissance,poids,enclos_id
    1,Simba,1,M,2018-05-12,190,1
    2,Nala,1,F,2019-07-03,175,1
    3,Rayure,2,M,2020-03-22,320,1
    4,Bambou,5,F,2015-06-15,80,2
    5,Paco,3,M,2021-02-10,1.2,3
    6,Lola,3,F,2022-09-01,0.9,3
    7,Glagla,4,M,2017-11-30,35,4
    8,Frimas,4,F,2018-12-10,33,4
    9,Carapace,5,M,2010-04-05,95,2
    10,Galipette,3,F,2021-05-18,1.1,3

📄 nourrissages.csv

Text Only
    id,animal_id,date,type_nourriture,quantite
    1,1,2024-11-01,Viande rouge,6
    2,2,2024-11-01,Viande rouge,5
    3,3,2024-11-01,Foin,8
    4,5,2024-11-01,Graines,0.2
    5,6,2024-11-01,Graines,0.15
    6,7,2024-11-01,Poisson,1
    7,8,2024-11-01,Poisson,1.1
    8,4,2024-11-01,Légumes,1.5
    9,9,2024-11-01,Légumes,1.2
    10,1,2024-11-02,Viande rouge,6.3
    11,7,2024-11-02,Poisson,1
    12,5,2024-11-02,Graines,0.25

📄 interventions.csv

Text Only
    id,animal_id,date,motif,compte_rendu
    1,1,2024-10-10,ContrĂŽle annuel,RAS
    2,2,2024-10-12,Blessure patte soignée,Antibiotiques 5 jours
    3,5,2024-09-20,Perte de plumes,Ajout vitamines
    4,7,2024-08-15,ProblÚme respiration,Début traitement
    5,9,2024-07-01,ContrĂŽle carapace,RAS