Cahier des charges
Projet : Application Web de Classification Automatique des Fibres de Coton égrené (SODECOTON)
Version : 1.0
Date : 09 juin 2025
Auteur : Équipe Projet SODECOTON / Data Science
Table des matières
1. Contexte et objectifs
2. Périmètre du projet
3. Public cible
4. Architecture fonctionnelle
5. Exigences fonctionnelles
6. Exigences non‑fonctionnelles
7. Contraintes techniques
8. Technologies et outils
9. Sécurité et gestion des accès
10. Livrables
11. Plan de déploiement et instructions d’exécution
12. Planning prévisionnel
1. Contexte et objectifs
La SODECOTON souhaite automatiser le classement visuel des fibres de coton égrené en s’appuyant sur
un modèle d’IA (EfficientNetB0) déjà entraîné. L'objectif est de : - Réduire la subjectivité et les erreurs
humaines - Accélérer le processus de classification - Assurer une traçabilité complète des classements
2. Périmètre du projet
L'application web doit permettre : - Gestion des utilisateurs (administrateur + classeurs) - Présentation
des différents types de vente de coton égrené - Soumission d’images et numéros de balle pour
classification - Consultation et export de l’historique des classements
3. Public cible
• Chef de service : accès administrateur
• Classeur : utilisateurs finaux réalisant les classifications
1
4. Architecture fonctionnelle
1. Interface administration : gestion CRUD des comptes classeurs
2. Authentification : login via matricule/mot de passe
3. Accueil : présentation des 6 classes de coton (Haut/Moyen/Bas de gamme)
4. Classification : upload image + n° balle → prédiction IA
5. Historique : filtres (date, utilisateur), export Excel, graphiques
5. Exigences fonctionnelles
ID Description
F1 Connexion sécurisée (admin et classeur)
F2 CRUD comptes classeurs (admin)
F3 Affichage dynamique des 6 types de coton avec images et descriptions
F4 Téléversement d’une image (JPG/PNG) et saisie d’un numéro de balle unique
F5 Prétraitement image (resize 224×224, preprocess_input)
F6 Appel du modèle IA et affichage du résultat (« PLEBE », « PLINE », etc.)
F7 Rejet et message d’erreur si format non image ou classe « ERREUR »
Enregistrement des prédictions valides en base SQLite (utilisateur, classe, date/heure,
F8
numéro de balle)
F9 Affichage de l’historique avec filtres (par jour, mois, période, utilisateur)
F10 Export de l’historique filtré au format Excel (.xlsx)
F11 Génération de graphiques statistiques (fréquence par classe)
6. Exigences non‑fonctionnelles
• Performance : réponse IA < 2s par image
• Disponibilité : application locale, uptime optimal
• Ergonomie : interface responsive (Bootstrap)
• Maintenabilité : structure modulaire (Flask Blueprints)
• Sécurité : hachage mots de passe, validation des entrées
7. Contraintes techniques
• IDE : Visual Studio Code
• Base de données : SQLite (fichier local)
• Modèle IA : efficientnetb0_part3_final.keras
• Hébergement : local (localhost:5000)
8. Technologies et outils
• Backend : Python 3.x, Flask, Jinja2
• IA : TensorFlow/Keras, OpenCV, NumPy
2
• Base : SQLite (SQLAlchemy)
• Frontend : HTML5, CSS3, Bootstrap 5, JavaScript, [Link]
• Export : Pandas, openpyxl
• DevOps : python-dotenv, virtualenv
9. Sécurité et gestion des accès
• Admin : compte par défaut (sodecoton/sodecoton)
• Classeur : création sécurisée (hachage bcrypt)
• Routes protégées : décorateurs @login_required
10. Livrables
• Code source organisé (structure détaillée)
• Scripts d’installation et d’initialisation de la base (init_db.py)
• Documentation (README, guides d’installation et d’utilisation)
• Tests unitaires (pytest)
11. Plan de déploiement et instructions d’exécution
1. Cloner le dépôt Git
2. Créer et activer un environnement virtuel :
python -m venv venv
source venv/bin/activate
3. Installer les dépendances :
pip install -r [Link]
4. Configurer les variables d’environnement dans .env
5. Initialiser la base de données :
python database/init_db.py
6. Lancer l’application :
python [Link]
7. Accéder à : [Link]
12. Planning prévisionnel
Phase Durée Dates
Analyse & spécifications 1 semaine 10–16 juin 2025
Conception & architecture 1 semaine 17–23 juin 2025
3
Phase Durée Dates
Développement backend 2 semaines 24 juin–07 juillet 2025
Développement frontend 2 semaines 08–21 juillet 2025
Tests unitaires & intégration 1 semaine 22–28 juillet 2025
Documentation & déploiement 1 semaine 29 juillet–04 août 2025
Total 8 semaines 10 juin–04 août 2025