Retour aux projets
Laravel 12 MySQL Tailwind CSS Alpine.js Blade Breeze

MediTime

Clone avancé de Doctolib permettant de simplifier la mise en relation entre patients et professionnels de santé. Développé avec Laravel 12, implémentant une gestion multi-rôles complète, la réservation de créneaux et un dashboard d'administration global.

Présentation & Motivation

Le projet couvre l'ensemble du parcours médical : les patients recherchent et réservent des créneaux, les médecins gèrent leurs disponibilités et leur tableau de bord, tandis que l'administration possède une vue globale sur la plateforme.

Ce défi full-stack ambitieux m'a permis de construire une plateforme complète de A à Z en partant de zéro. L'objectif principal était de maîtriser un framework PHP moderne (Laravel 12) dans un contexte concret : gestion stricte des rôles, flux de réservation empêchant les conflits simultanés, upload sécurisé d'attestations et protection des données sensibles.

Le Parcours Utilisateur

Une interface pensée pour la simplicité, côté patient comme côté professionnel de santé.

Espace Patient

Prise de rendez-vous fluide

Recherche avancée par nom, spécialité ou ville. Les patients accèdent aux créneaux des praticiens et peuvent filtrer par dates ("Aujourd'hui", "Cette semaine"). La réservation intègre le choix du motif et les interactions sont sans rechargement grâce à Alpine.js.

Espace Praticien

Gestion flexible des créneaux

Les médecins créent dynamiquement leurs plages de disponibilité (slots). Leur tableau de bord permet une vue d'ensemble des rendez-vous avec le motif de chaque consultation. L'annulation d'un rendez-vous libère le créneau immédiatement de manière sécurisée.

🛡️
Administration Globale
Supervision & Sécurité Multi-Rôles

L'architecture du projet nécessite une protection forte avec 3 profils distincts (Admin, Médecin, Patient). Chaque requête est protégée par des Middlewares stricts pour s'assurer que le bon rôle accède à la bonne ressource.

Défis résolus :

  • Concurrence : Prévention stricte des conflits de réservation si deux patients cliquent en même temps.
  • Intégrité Référentielle : Impossibilité absolue de supprimer un utilisateur (médecin ou patient) s'il possède des rendez-vous futurs.
  • Validation Sécurisée : Upload des attestations d'exercice des médecins vérifié côté serveur.
  • Administration : Tableau de bord statistique moderne avec filtrage dynamique et gestion des spécialités médicales en temps réel.

Réalisations Techniques

Système de slots de réservation Authentification & Middlewares Upload sécurisé de fichiers MVC sur Laravel 12 UI/UX inspirée Doctolib Graphiques statistiques Breeze & Blade Templates Alpine.js pour le DOM dynamique
Retour aux projets
Type Projet personnel clone
Objectif Maîtrise de Laravel 12
Rôles gérés Admin, Médecin, Patient
Code Source Public (GitHub)
🚀Laravel 12 (PHP 8.2+)
🔐Laravel Breeze
🐬MySQL
🎨Tailwind CSS
Alpine.js
📄Blade Templates
🔹 User (Admin, Doctor, Patient)
🔹 DoctorProfile (Attestation)
🔹 Specialty (Spécialités)
🔹 Slot (Créneaux horaires)
🔹 Appointment (Réservations)
🔹 ConsultationReason
Code Source (GitHub) Tous les projets