Aller au contenu principal

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 :

  1. Setup (30 min)

    • Créez la structure de packages
    • Configurez Gson (Maven ou JAR)
    • Créez le fichier JSON initial
  2. Modèle (1h)

    • Créez la classe Livre
    • Implémentez tous les getters/setters
    • Testez avec main simple
  3. Services (2h)

    • Créez BibliothequeService
    • Créez FichierService avec Gson
    • Testez sauvegarde/chargement
  4. Controller (1h30)

    • Créez BibliothequeController
    • Implémentez le menu
    • Gèrez les interactions
  5. Intégration (1h)

    • Connectez tout
    • Testez toutes les fonctionnalités
    • Corrigez les bugs
  6. 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 :

  1. Comment créer une classe en Java ?
  2. Comment gérer les exceptions ?
  3. Comment utiliser Gson pour JSON ?
  4. Comment organiser en packages ?
  5. 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.