Skip to content

Rateur/wildaiprint-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WildAIprint logo WildAIprint – App Front & API

Simplon x Microsoft – Développeur IA Étoiles GitHub

Application WildAIprint complète (front web + API Flask) connectée au modèle de classification d’empreintes animales.
Soumission d’images, inférence en temps réel, stockage des traces et restitution des informations espèces.

La documentation du projet est répartie sur deux README complémentaires :

  • Ce dépôt – WildAIprint App : application front/back (interface + API Flask).
  • WildAIprint – Modèle IA : entraînement et export du modèle (model.keras) – github.com/Rateur/WildAIprint-Modele-CNN.

Sommaire

  1. À propos
    1.1. Pitch & objectifs
    1.2. Documentation projet
  2. Technologies & outils
  3. Architecture & modules
  4. Installation & lancement
  5. API & intégration
  6. Structure du dépôt
  7. CI/CD & qualité

À propos

Pitch & objectifs

  • Interface web permettant d’uploader une photo d’empreinte et d’obtenir une prédiction instantanée.
  • Back-end Flask intégrant le modèle Keras pré-entraîné (ResNet50 fine-tuné).
  • Persistance des observations (espèce, localisation, date, image) dans une base SQLite.
  • API REST exposant les routes principales : predict, tracks, animals.
  • Déploiement local simple via Docker Compose (2 services : front et api).

Documentation projet

Retour en haut


Technologies & outils

HTML5
HTML5
CSS3
CSS3
JavaScript
Vanilla JS
Python
Python 3.10+
Flask
Flask
Docker
Docker
SQLite
SQLite
Git
Git & CI
  • Inference IA : chargement du modèle model.keras (TensorFlow/Keras), mapping class_names.json.
  • Suivi : scripts de tests (test_api.py) + pipeline .gitlab-ci.yml.

Retour en haut


Architecture & modules

  • Front (HTML/CSS/JS) : formulaire d’upload, aperçu de l’image, affichage des prédictions et informations espèces.
  • API Flask :
    • route /predict : traitement de l’image, préprocess, inference, réponse JSON enrichie,
    • routes /tracks (POST/GET) : sauvegarde et lecture des observations,
    • route /animals : catalogue des espèces avec métadonnées (infos_especes.csv).
  • Persistance : base SQLite wildprint.db initialisée via connection_db.py.
  • Containerisation : services frontend et api orchestrés par docker-compose.yml.
utilisateur → front (formulaire, fetch) → API Flask → modèle Keras → réponse JSON → affichage + stockage
Schéma répertoire
/
├── api/
│   ├── app.py
│   ├── connection_db.py
│   ├── class_names.json
│   ├── infos_especes.csv
│   ├── model.keras
│   ├── requirements.txt
│   ├── test_api.py
│   └── Dockerfile
├── front/
│   ├── index.html
│   ├── script.js
│   ├── style.css
│   ├── assets/
│   └── Dockerfile
├── docker-compose.yml
└── README.md

Retour en haut


Installation & lancement

1. Pré-requis

  • Python 3.10+
  • Docker (optionnel mais recommandé pour un lancement rapide)
  • Navigateur récent (Chrome/Firefox)

2. Cloner le dépôt

git clone https://github.com/Rateur/wildaiprint-App.git
cd wildaiprint-App

3. Lancement via Docker Compose

docker-compose build
docker-compose up
  • Front disponible sur http://localhost:8080
  • API accessible sur http://localhost:5000

4. Lancement manuel (sans Docker)

# Back-end
cd api
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app.py

# Front-end (depuis la racine ou front/)
python -m http.server 8080
  • Adapter le champ API_URL dans front/script.js si l’API tourne sur une autre adresse/port.

Retour en haut


API & intégration

Méthode Endpoint Content-Type Corps / Description
POST /predict multipart/form-data Champ image (JPEG/PNG). Retourne l’espèce prédite + métadonnées.
POST /tracks application/json { "species": "...", "location": "...", "date": "...", "picture": "..." }
GET /tracks application/json Liste paginable des observations stockées dans SQLite.
GET /animals application/json Catalogue des espèces connues (nom, famille, habitat, anecdote).
Exemple de réponse /predict
{
  "animal": {
    "species": "Chat",
    "name": "Felis silvestris",
    "family": "Mammifère",
    "region": "Amérique, Europe, Asie occidentale et Afrique",
    "size": "46 à 51 cm sans la queue",
    "picture": "chat.jpg",
    "description": "Le Chat (Felis silvestris) est une espèce de félins présent dans divers types d'habitats.",
    "funfact": "Un chat ne peut pas voir directement sous son nez !"
  },
  "confidence": 0.87,
  "class_id": 2
}

Retour en haut


Structure du dépôt

/
├── api/                  # API Flask + modèle IA + tests
├── front/                # Interface web statique
├── docker-compose.yml    # Orchestration front/api
└── README.md             # Ce guide
  • Les artefacts lourds (model.keras, class_names.json, mlruns/) sont ignorés via .gitignore.
  • Les notebooks et scripts d’entraînement sont disponibles dans le dépôt IA compagnon.

Retour en haut


CI/CD & qualité

  • .gitlab-ci.yml : pipeline de build/test (Docker) utilisé sur l’infrastructure GitLab d’origine.
  • api/test_api.py : test d’intégration simulant un appel complet à l’API /predict.
  • Recommandé : lancer des tests après toute modification backend (pytest api/test_api.py).

Retour en haut

About

Application complète (front web + API Flask) connectée au modèle d’IA WildAIprint. Permet de soumettre des photos d’empreintes animales pour obtenir une prédiction instantanée grâce à un modèle CNN. Stocke les résultats dans une base SQLite et affiche les informations des espèces reconnu

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors