Module Java.12 – Mini-projet
Objectif
Créer une application Java console complète pour valider toutes les compétences Java acquises.
Théorie
Application : Gestionnaire de bibliothèque
Application console complète utilisant toutes les fonctionnalités Java apprises.
Spécifications du projet
Fonctionnalités
1. CRUD complet (Create, Read, Update, Delete)
- Créer un nouveau livre
- Afficher tous les livres
- Modifier un livre existant
- Supprimer un livre
2. POO complète
- Classes avec encapsulation
- Héritage si approprié
- Interfaces
- Polymorphisme
3. Gestion d'exceptions
- Exceptions personnalisées
- try/catch approprié
- Messages clairs
4. Persistance
- Sauvegarde en JSON (Gson)
- Chargement au démarrage
- Gestion d'erreurs de fichier
5. Interface console
- Menu interactif
- Affichage formaté
- Validation des entrées
Structure de données
class Livre {
private int id;
private String titre;
private String auteur;
private int annee;
private boolean disponible;
// Constructeurs, getters, setters
}
Architecture recommandée
Structure :
bibliotheque/
├── src/
│ └── com/
│ └── bibliotheque/
│ ├── Main.java
│ ├── models/
│ │ └── Livre.java
│ ├── services/
│ │ ├── BibliothequeService.java
│ │ └── FichierService.java
│ ├── controllers/
│ │ └── BibliothequeController.java
│ └── exceptions/
│ └── LivreNotFoundException.java
├── data/
│ └── livres.json
└── README.md
Guide de développement
Étape 1 : Modèle
// models/Livre.java
public class Livre {
private int id;
private String titre;
private String auteur;
private int annee;
private boolean disponible;
// Constructeurs, getters, setters, toString
}
Étape 2 : Service de données
// services/BibliothequeService.java
public class BibliothequeService {
private List<Livre> livres;
private FichierService fichierService;
public void ajouter(Livre livre) {}
public Livre trouver(int id) {}
public void modifier(Livre livre) {}
public void supprimer(int id) {}
public List<Livre> lister() {}
}
Étape 3 : Persistance
// services/FichierService.java
public class FichierService {
public void sauvegarder(List<Livre> livres) {}
public List<Livre> charger() {}
}
Étape 4 : Controller
// controllers/BibliothequeController.java
public class BibliothequeController {
private BibliothequeService service;
public void afficherMenu() {}
public void creerLivre() {}
public void listerLivres() {}
public void modifierLivre() {}
public void supprimerLivre() {}
}
Étape 5 : Main
// Main.java
public class Main {
public static void main(String[] args) {
BibliothequeController controller = new BibliothequeController();
controller.demarrer();
}
}
Critères d'évaluation
Fonctionnalité (40%) :
- CRUD complet fonctionnel
- Persistance JSON opérationnelle
- Interface utilisateur claire
Code (30%) :
- POO bien utilisée
- Architecture organisée
- Code propre et commenté
Java (20%) :
- Utilisation appropriée des concepts
- Gestion d'exceptions
- Bonnes pratiques
Documentation (10%) :
- JavaDoc complet
- README avec instructions
Exercice - Développement
Suivez ces étapes :
-
Setup (30 min)
- Créez la structure de packages
- Configurez Gson (Maven ou JAR)
- Créez le fichier JSON initial
-
Modèle (1h)
- Créez la classe Livre
- Implémentez tous les getters/setters
- Testez avec main simple
-
Services (2h)
- Créez BibliothequeService
- Créez FichierService avec Gson
- Testez sauvegarde/chargement
-
Controller (1h30)
- Créez BibliothequeController
- Implémentez le menu
- Gèrez les interactions
-
Intégration (1h)
- Connectez tout
- Testez toutes les fonctionnalités
- Corrigez les bugs
-
Améliorations (1h)
- Ajoutez exceptions personnalisées
- Améliorez l'UX
- Finalisez la documentation
Quiz de révision
Avant de commencer, vérifiez vos connaissances :
- Comment créer une classe en Java ?
- Comment gérer les exceptions ?
- Comment utiliser Gson pour JSON ?
- Comment organiser en packages ?
- Comment créer un menu console ?
Ressources
Si vous êtes bloqué :
- Revisitez les modules précédents
- Documentation Java officielle
- Stack Overflow
Bonnes pratiques :
- Code organisé
- POO bien utilisée
- Gestion d'erreurs
- Documentation complète
Objectif final
Créer une application Java console complète qui démontre :
- Maîtrise de la syntaxe Java
- Compréhension de la POO
- Gestion des exceptions
- Manipulation de fichiers et JSON
- Architecture professionnelle
- Bonnes pratiques
Validation : Vous avez terminé Java quand votre application est fonctionnelle, bien structurée et utilise toutes les fonctionnalités apprises.
Félicitations ! Vous avez terminé l'apprentissage complet de Java. Vous êtes maintenant capable de créer des applications Java professionnelles.