ENSAO GI3 PROGRAMMATION AVANCEE EN PYTHON
Université Mohammed Premier
École Nationale des Sciences Appliquées
Filière Génie Informatique
Programmation avancée en Python
Mini projet d’application
Système de Gestion de Bibliothèque
A. Objectif du projet
Vous développerez une application complète de gestion de bibliothèque en Python qui
intègre :
Un backend POO pour la logique métier
La gestion des exceptions pour les erreurs métier
La persistance des données dans des fichiers
La génération de rapports statistiques avec Matplotlib
La persistance des données (fichiers JSON/CSV)
B. Fonctionnalités Requises
1. Module de Gestion des Livres (POO)
Classe Livre avec attributs :
o ISBN, titre, auteur, année, genre, statut (disponible/emprunté)
Classe Membre avec :
o ID, nom, liste des livres empruntés
Classe Bibliotheque avec méthodes :
o Ajouter/supprimer des livres
o Enregistrer des membres
o Gérer les emprunts/retours
o Sauvegarder/charger les données
ZAKARIA HAJA 1 2024/2025
ENSAO GI3 PROGRAMMATION AVANCEE EN PYTHON
2. Interface en Ligne de Commande
Menu interactif avec les options :
Validation des saisies utilisateur
3. Interface Graphique (Tkinter) (Optionnel)
Fenêtre principale avec onglets :
Widgets requis :
o Tableaux
o Formulaires de saisie
o Boutons d'action avec gestion d'erreurs
o Messages d'alerte personnalisés
4. Gestion des Erreurs (Exceptions)
Créer des exceptions personnalisées :
o LivreIndisponibleError
o QuotaEmpruntDepasseError
o MembreInexistantError
o LivreInexistantError
Intercepter ces exceptions dans le flux principal
5. Tableau de Bord Statistique
Visualisations : Générer des graphiques avec Matplotlib
o Diagramme circulaire : % de livres par genre
ZAKARIA HAJA 2 2024/2025
ENSAO GI3 PROGRAMMATION AVANCEE EN PYTHON
o Histogramme : Top 10 des auteurs les plus populaires
o Courbe temporelle : Activité des emprunts (30 derniers jours)
intégrer TensorFlow/Keras dans le projet en ajoutant une
fonctionnalité de recommandation de livres basée sur les genres et
l'historique d'emprunt
o …..
6. Gestion des Données
Sauvegarde dans des fichiers texte/JSON :
o [Link] (format: ISBN;titre;auteur;année;genre;statut)
o [Link] (format: ID;nom;livres_empruntés)
o [Link] (format: date;ISBN;ID_membre;action)
intégrer TensorFlow/Keras dans le projet en ajoutant une fonctionnalité
de recommandation de livres basée sur les genres et l'historique d'emprunt
Chargement des données au démarrage
C. Organisation
Projet individuel
Le lien GitHub doit être déposé sur Classroom
Livrables :
o Référentiel GitHub (Voici un exemple de structure du repo Github)
ZAKARIA HAJA 3 2024/2025
ENSAO GI3 PROGRAMMATION AVANCEE EN PYTHON
Contenu des Fichiers
o [Link] :
Votre nom
Guide d'installation
Exemples d'utilisation
o [Link] (4-6 pages) :
Diagramme de classes UML
Explications des algorithmes clés
Captures d'écran des visualisations
Difficultés rencontrées et solutions
intégrer TensorFlow/Keras dans le rapport
o Vidéo de Présentation (4 min max) :
Démonstration des fonctionnalités
Explication technique des parties complexes
Présentation des visualisations générées
Liens utiles :
o [Link]
NcOtoC6GglhF3ncJ5rLwQrLGnV
o [Link]
Date limite : 28 Juin 2025 Le lien GitHub doit être déposé sur Classroom
NB : les projets avec des codes copier-coller ils ne seront absolument pas pris en
compte.
D. Critères d'évaluation
POO
Gestion des erreurs
Persistance des données
Qualité des visualisations
Documentation et rapport
Vidéo de Présentation
ZAKARIA HAJA 4 2024/2025