Systeme de Bibliotheque
Presentation
Objectif principal : Un systeme de gestion de bibliotheque complet. Gerer les livres, les adherents, les emprunts, les retards, les reservations. C'est l'exercice classique d'OOP mais fait serieusement.
Technologies utilisees : Java avec JDBC pour la base de donnees MySQL. Interface console avec menus. Architecture en couches (DAO, Service, UI).
Fonctionnalites cles : CRUD livres et adherents, emprunts avec date de retour, calcul automatique des penalites de retard, reservations quand un livre est indisponible, recherche par titre/auteur/ISBN.
Livrables attendus : Application console avec base de donnees. Script SQL pour creer les tables. Jeu de donnees de test.
Calendrier previsionnel : Trois semaines. C'etait le projet principal du cours de POO, fallait montrer qu'on maitrise les concepts.
Parties prenantes & criteres de succes : Projet note de POO. Le prof voulait voir heritage, polymorphisme, encapsulation, et une bonne architecture.
Le Defi
La gestion des reservations quand un livre revient. Faut notifier le premier de la file d'attente, lui donner un delai pour venir chercher, et si il vient pas passer au suivant. C'est de la logique metier complexe.
La Solution
Une classe ReservationQueue par livre qui gere la file avec priorite par date. Quand un livre est rendu, event qui trigger la notification du premier de la queue. Un job qui verifie les reservations expirees chaque jour (simule en console).
Architecture Technique
3 couches : DAO (BookDAO, MemberDAO, BorrowDAO avec JDBC), Service (LibraryService qui orchestre), UI (ConsoleUI avec Scanner). Entites : Book, Member, Borrow, Reservation. Heritage : Member -> Student, Teacher avec regles differentes (duree d'emprunt, nb max de livres).
Points Cles
- Architecture en couches propre
- Heritage bien utilise
- Logique metier complete
Apercu
Resultats & Apprentissages
18/20, le prof a apprecie l'architecture. J'ai vraiment compris pourquoi l'OOP c'est utile : le code est organise, testable, extensible. Le pattern DAO ca change la vie pour la base de donnees.
Evolutions Futures
Interface web ou JavaFX. Notifications par email. Scan de code-barres. Statistiques d'emprunt par categorie. Integration avec des API de livres (Open Library).