Cahier de charge :
1. Présentation du projet
Le projet consiste à développer une application Java avancée assurant une gestion
hospitalière simplifiée. L’objectif principal est d’automatiser certaines tâches
essentielles telles que la gestion des patients, des médecins, la planification des
rendez-vous et la consultation des dossiers médicaux.
Le système doit intégrer :
JavaFX pour l’interface graphique
JDBC/Hibernate pour la base de données
Java Collections & Streams
Gestion des fichiers CSV
Sockets pour un module client-serveur
Threads et synchronisation
Gestion robuste des exceptions
Ce projet est destiné aux étudiants du cycle ingénieur (2ᵉ année) dans le cadre du
module Java Avancé.
2. Objectifs fonctionnels
L’application doit permettre :
2.1 Gestion des Patients
Ajouter, modifier, supprimer un patient
Recherche via Streams (nom, CIN, numéro dossier)
2.2 Gestion des Médecins
Ajouter et lister les médecins
Filtrer par spécialité (Streams)
2.3 Gestion des Rendez-vous
Création d’un rendez-vous entre patient et médecin
Respect des conflits d’horaire (exceptions personnalisées)
2.4 Gestion des Dossiers Médicaux
Associer un historique médical à un patient
Lecture/Écriture CSV pour sauvegarde
2.5 Module de Communication (Sockets)
Serveur : permet la consultation d’un dossier en envoyant l’ID du patient
Client : envoie la requête et reçoit les informations
2.6 Interface Graphique (JavaFX)
Tableau des patients
Tableau des médecins
Formulaire d’ajout
Affichage des rendez-vous
Consultation dynamique des dossiers
3. Objectifs techniques
3.1 Structure logicielle
Maximum 6 classes principales
Utilisation de ArrayList / HashMap
Traitement parallèle :
• chargement de données
• simulation de demandes réseau
→ via Threads + synchronized
3.2 Gestion CSV
Export/import de :
o [Link]
o [Link]
o [Link]
3.3 Base de données
Tables recommandées :
Patient(id, nom, prenom, cin, age)
Medecin(id, nom, specialite)
RendezVous(id, id_patient, id_medecin, date)
3.4 Réseau (Sockets)
Serveur multi-threaded
Client GUI pour consultation rapide