Projet App gestion étudiants JAVA / JAVAFX

Création d'une interface moderne pour CRUD utilisateurs, recherche dynamique et statistiques intégrées. Dans le cadre du B2 à l'ECE Paris.

Admin

3/1/20252 min read

Interface moderne pour CRUD utilisateurs, recherche dynamique et statistiques intégrées. Dans le cadre du B2 à l'ECE Paris.

🎯 Objectifs du Projet

  • CRUD complet : Créer, lire, éditer, supprimer des utilisateurs via une interface intuitive.

  • 🔍 Recherche en temps réel : Filtrer par nom ou email avec réactivité immédiate.

  • 📊 Fonctionnalité bonus : Graphique des inscriptions mensuelles (JavaFX Charts).

  • 🛡️ Validation des données : Email unique, champs obligatoires, formatages.

🚀 Stack Technique

  • Backend :
    🗃️ MySQL (table users avec id, name, email, created_at).
    Java 17 + JavaFX 20 (liaison de données, FXML).

  • Frontend :
    🎨 FXML + CSS (design personnalisé, animations).
    📈 JavaFX Charts (graphique des inscriptions).

  • Outils :
    🛠️ Scene Builder (design d'interface), Maven (gestion des dépendances).

✨ Fonctionnalités Clés

  1. Création d'utilisateur :

    • Formulaire avec validation d'email (regex ^[\\w.-]+@[\\w.-]+\\.[a-z]{2,}$).

    • Alertes en cas de doublon ou champ manquant.

  2. Liste dynamique :

    • Tri des colonnes (ID, nom, email).

    • Pagination (20 utilisateurs/page).

  3. Recherche intelligente :

    • Filtrage instantané pendant la saisie.

    • Mise en surbrillance des résultats.

  4. Édition rapide :

    • Double-clic sur une ligne pour modifier.

    • Sauvegarde automatique dans la base.

  5. Statistiques :

    • Graphique à barres montrant les inscriptions par mois.

    • Export en PNG/CSV.

🚧 Défis Relevés

  • Liaison de données : Synchronisation du TableView avec la base via ObservableList.

  • Performance : Cache des résultats de recherche pour éviter les requêtes répétées.

  • Ergonomie : Animations fluides (transitions CSS) pour les modifications.

💡 Leçons Apprises

  • JavaFX Binding : Utilisation de Property pour des mises à jour automatiques.

  • Architecture MVC : Séparation claire entre logique métier et interface.

  • Gestion d'erreurs : Messages utilisateurs clairs (ex: "Email déjà utilisé !").