Aller au contenu principal
Client confidentiel

Annuaire de Praticiens & Prise de Rendez-vous

Mise en relation patients-praticiens et gestion documentaire médicale sécurisée, pour un client confidentiel du secteur bien-être.

Développement freelance (contribution à une équipe)

Angular NestJS MySQL Redis TypeORM
20 000
Fiches praticiens (jeu de données de test)
9
Anomalies corrigées en une session
10
Minutes de validité des URLs de documents

Le défi

Un client confidentiel du secteur du bien-être et de la médecine douce au Maroc avait besoin d'une plateforme de mise en relation entre patients et praticiens — recherche par spécialité et par ville, fiches praticien, prise de rendez-vous — ainsi que d'un espace dédié permettant à chaque praticien de gérer son propre agenda, ses disponibilités et ses patients. Le projet portait aussi un vrai enjeu de confidentialité : les patients devaient pouvoir partager des documents médicaux avec un ou plusieurs praticiens de façon contrôlée, sans jamais les exposer publiquement.

La solution

Saad a contribué au développement de cette plateforme aux côtés d'une équipe, dans le cadre d'une mission freelance étalée dans la durée. L'architecture repose sur une API NestJS/TypeORM/MySQL servant deux frontends Angular distincts — un site public pour les patients (recherche, carte Leaflet, prise de rendez-vous) et un portail dédié aux praticiens (agenda FullCalendar, gestion des disponibilités, liste enrichie des patients avec historique de visite).

  • Recherche et prise de rendez-vous côté patient, avec statuts de réservation (à venir, passé, annulé)
  • Agenda praticien avec confirmation, annulation et clôture de rendez-vous
  • Gestion documentaire médicale : upload, permissions explicites par praticien, journal d'audit de chaque consultation et téléchargement

Les résultats

La plateforme a été conçue et testée avec un jeu de données réaliste de près de 20 000 fiches praticiens réparties sur les grandes villes marocaines (Casablanca, Marrakech, Tanger, Mohammedia...). Un passage de correction daté a permis de traiter 9 anomalies concrètes en une seule session (année de copyright obsolète, liens morts, message de sécurité incomplet, bug d'affichage mobile, bouton de réservation mal configuré) — une discipline de vérification ponctuelle plutôt qu'un audit qualité formel. Le déploiement cible une infrastructure d'hébergement dédiée, distincte de l'environnement de développement ; l'usage réel en production par des patients et praticiens n'est pas confirmé de façon indépendante à ce stade.

Méthodologie et gestion de projet

La fonctionnalité de prise de rendez-vous a été construite délibérément « frontend-first » — interface complète avec données simulées en local, accompagnée d'un document de spécification dédié détaillant précisément les endpoints backend restant à construire (statuts, motifs d'annulation, durée, type de consultation, gestion des disponibilités). Ce choix assumé a permis de valider l'expérience utilisateur avant d'engager le développement backend complet. Le périmètre initial — une maquette de plus de 60 écrans incluant des concepts de marketplace — a été volontairement réduit à un produit plus ciblé : annuaire et prise de rendez-vous, sans les fonctionnalités de vente en ligne envisagées au départ.

Architecture technique et performance

La gestion documentaire repose sur un système de permissions explicites par praticien (table de liaison dédiée) combiné à des URLs signées à courte durée de vie (10 minutes) plutôt qu'à des liens directs vers les fichiers, avec un journal d'audit consignant chaque consultation, téléchargement ou suppression. Par discipline de sécurité sur les données de production, les migrations de schéma sont exclusivement manuelles (TypeORM synchronize désactivé) — une règle documentée comme non négociable dans les standards internes du projet. Le cache est géré via Redis, avec authentification JWT et hashage bcrypt des mots de passe.

Audit de Risque Projet

Questions fréquentes sur ce type de mission

Vous avez un projet similaire ?

Contactez-moi pour en discuter.

Discuter sur WhatsApp