Planif'IDEL
Application SaaS mobile-first pour infirmières libérales — agenda, tournées GPS et bot IA, conçue en solo de A à Z.
Le projet
Un agenda qui comprend le métier d'infirmière libérale
Planif'IDEL a été conçue de A à Z, en solo, pour un marché de plus de 100 000 infirmières libérales en France. L'objectif : remplacer le papier et les outils génériques par une application qui parle vraiment le langage du métier — tournées, actes, urgences, transmissions d'équipe.
Choix technique assumé : aucun framework, aucune dépendance npm. Toute l'application tient dans un seul fichier HTML de ~380 Ko, pour un chargement en moins de 2 secondes, même en zone peu couverte.
Le produit est aujourd'hui en bêta privée, testé par plus de 15 infirmières en conditions réelles.
Ce qui a été livré
- Authentification multi-cabinet avec rôles (Titulaire / Collègue / Remplaçante)
- Agenda journalier + planification de tournée en masse avec récurrence
- Tournée optimisée par GPS (Mapbox), bascule automatique au-delà de 12 patients
- Fiches patients complètes : allergies, digicode, actes, historique, transmissions
- Bot IA (Claude) : création de fiche patient par dictée ou copier-coller
- Messagerie d'équipe en temps réel avec mentions et messages vocaux
- Mode hors-ligne complet (PWA, Service Worker) pour les zones blanches
Stack technique
Les outils derrière le projet
HTML / CSS / JavaScript vanilla
Supabase (PostgreSQL + Auth + Realtime + RLS)
Mapbox — GPS & optimisation de tournée
Claude (Anthropic) — IA
Nominatim — géocodage
Netlify + Netlify Functions
PWA / Service Worker
Défis techniques
Ce qu'il a fallu résoudre
01
ProblèmeL'API Mapbox Optimized Trips est limitée à 12 patients maximum par tournée.
SolutionDétection automatique du nombre de patients et bascule sur l'API Directions pour les tournées de 13 à 25 patients.
02
ProblèmeGarantir qu'un cabinet ne puisse jamais voir les données d'un autre cabinet.
SolutionRow Level Security Supabase sur toutes les tables, avec fonctions SQL SECURITY DEFINER pour les opérations sensibles (exclusion, suppression).
03
ProblèmeSur Android, le preventDefault() nécessaire au swipe bloquait aussi le scroll de l'agenda.
SolutionMesure du déplacement du doigt : un geste de moins de 8px est traité comme un tap, au-delà comme un scroll.
Aperçu
L'application en images
Création d'un rendez-vous
Fiche patient
Historique des soins
Transmissions d'équipe
Actions rapides — appel, itinéraire, urgence
Gestion d'équipe & invitations
Messagerie d'équipe en temps réel
Rappels de suivi patient