Aller au contenu principal
Mohamed Amine MIDENI
Tous les projets

MediFy

Marketplace full-stack de tourisme médical avec paiements et chat temps réel

React 18Tailwind CSSReact RouterContext APIMode sombre / clair
MediFy

À propos

Contexte, problème & solution

MediFy est une marketplace full-stack de tourisme médical qui permet aux patients d'organiser tout un voyage autour d'une intervention médicale — la clinique, le séjour et le transport — au même endroit, avec paiements, messagerie et avis intégrés.

Contexte et problème. Le tourisme médical est logistiquement complexe : un patient doit coordonner une clinique, un hébergement à proximité et un transport entre les deux, souvent malgré une barrière de la langue, et toujours avec de l'argent et de la confiance en jeu. Une plateforme pour cela ne peut pas être un simple catalogue — il lui faut des paiements sécurisés, des avis vérifiés, une communication en temps réel, et des capacités différentes pour des types d'utilisateurs très différents.

Solution. MediFy est organisée en marketplace multi-rôles. Les patients parcourent et réservent parmi trois types de services (cliniques, logements, véhicules) ; les gestionnaires de cliniques/logements/véhicules gèrent leurs propres annonces et réservations ; un super-admin supervise l'ensemble de la plateforme. Le frontend React dialogue avec un backend Express/MongoDB exposant une API REST, Socket.IO alimentant le chat et les notifications in-app. Les paiements passent par Stripe (payment intents, planification, remboursements automatisés), les médias sont gérés par Cloudinary, et les pipelines d'agrégation de MongoDB alimentent les tableaux de bord analytiques.

Ingénierie et exigence qualité. La sécurité est traitée comme une préoccupation de premier plan et non comme une pensée après-coup : authentification JWT avec refresh tokens, double authentification TOTP optionnelle, contrôle d'accès par rôle, limitation de débit des requêtes et validation des entrées sur toute la surface de l'API. Le domaine est modélisé explicitement (Users, Clinics, Houses, Cars, Reservations, Reviews) pour garder les responsabilités séparées, et la base de code embarque une configuration de tests (Jest, React Testing Library, Supertest) pour exercer en isolation les flux critiques comme les paiements et la réservation.

Architecture

Comment le système est construit

architecture.diagram
Utilisateurs
SPA React
Patients & gestionnairesUI responsive
API
API Express
Routes REST2FA, rate limiting
Socket.IO
Chat & notifications
Services
Stripe
Payment intentsRemboursements
Cloudinary
Upload de médias
Données
MongoDB
Cliniques, logements, véhiculesRéservations, avis
Marketplace multi-rôles (patients, gestionnaires, admin)Réservation procédure + hébergement + transportPaiements Stripe avec remboursements2FA (TOTP) + contrôle d'accès par rôleChat & notifications temps réel (Socket.IO)MongoDB avec avis & analytics

Stack technique

Technologies utilisées

Frontend

React 18Tailwind CSSReact RouterContext APIMode sombre / clair

Backend

Node.jsExpressSocket.IOJWT + refresh tokensAPI REST

Base de données

MongoDBAgrégation & indexationUsers, Clinics, Houses, Cars, Reservations, Reviews

Paiements & médias

Stripe (intents, remboursements)Cloudinary (médias)Email SMTP

Sécurité

Auth JWTDouble authentification (TOTP)Contrôle d'accès par rôleRate limitingValidation des entrées

Envie d'en savoir plus sur MediFy ?

Le code source complet est disponible sur GitHub, avec l'historique et la configuration de déploiement.