queue-med/todo.md
Tarzzan 526f68dad1 feat: QueueMed v1.0.0 — Documentation et handoff
- README.md complet avec stack, routes, architecture DB
- MANUS_HANDOFF.md avec état du projet et roadmap
- todo.md avec toutes les fonctionnalités
- Schema Drizzle de référence dans docs/

Fonctionnalités v1.0.0 :
- File d'attente virtuelle temps réel (WebSocket/Socket.io)
- QR code anti-triche rotatif par cabinet
- Interface patient mobile (position live, alertes)
- Écran d'affichage tablette/moniteur
- Tableau de bord médecin complet
- Analytics + export CSV
- Tickets imprimables
- Système d'abonnement (essai 30j, blocage)
- Multi-cabinets

Auteur: William MERI
2026-02-27 10:49:35 -05:00

58 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# QueueMed Project TODO
## Phase 3 : Schéma DB & Design System
- [x] Schéma Drizzle : tables users, clinics, queue_entries, subscriptions, analytics_events
- [x] Migration DB (pnpm db:push)
- [x] Design system : palette teal/orange cinématique dans index.css
- [x] Polices Google Fonts (Inter + Space Grotesk)
## Phase 4 : Landing Page & Auth Médecin
- [x] Landing page cinématique avec hero, features, pricing
- [x] Page d'inscription / connexion médecin (OAuth Manus)
- [x] Middleware de vérification d'abonnement (trial/active/blocked)
- [x] Page de blocage abonnement expiré
## Phase 5 : Dashboard Médecin & QR Code
- [x] Dashboard médecin principal avec stats
- [x] Gestion multi-cabinets (CRUD clinics)
- [x] Génération QR code unique/aléatoire par cabinet (rotation anti-triche)
- [x] Interface gestion file d'attente (appel prochain, skip, fermer)
- [x] Affichage numéro en cours et temps estimé
## Phase 6 : Interface Patient & Écran d'Affichage
- [x] Page patient après scan QR code (sans compte requis)
- [x] Affichage position en temps réel dans la file
- [x] Estimation du temps d'attente en live
- [x] Écran d'affichage tablette/moniteur (route /display/:clinicId)
- [x] WebSocket server (Socket.io) pour mises à jour temps réel
- [x] Connexion WebSocket côté patient et écran d'affichage
## Phase 7 : Stripe & Abonnement
- [x] Plans d'abonnement mensuel (Basic 29€, Pro 59€)
- [x] Gestion essai gratuit 1 mois (auto-création à la première connexion)
- [x] Page de paiement et gestion abonnement dans le dashboard
- [x] Blocage automatique après expiration (subscriptionProcedure middleware)
- [ ] Intégration Stripe réelle (webdev_add_feature stripe) à activer
- [ ] Webhook Stripe pour renouvellement/expiration automatique
## Phase 10 : Améliorations UX & Notifications
- [ ] Page patient enrichie (progression animée, alertes)
- [ ] Écran d'affichage avec animation de numéro appelé
- [ ] Landing page : section "Comment ça marche" complète
- [ ] Notifications push navigateur (Web Push API)
- [ ] Export CSV des analytics
- [ ] README.md et MANUS_HANDOFF.md
- [ ] Push GitHub final
## Phase 8 : Analytics, Notifications & Tickets
- [x] Analytics : temps d'attente moyen, pics d'affluence, taux de présence
- [x] Graphiques recharts dans le dashboard médecin (barres, camembert)
- [x] Prédictions et recommandations IA basées sur l'historique
- [x] Impression de ticket numérique (page imprimable)
- [x] Attribution numéro unique pour patients sans téléphone (printTicket)
- [ ] Notifications push/SMS (Twilio) à intégrer
## Phase 9 : Tests, Audit & Documentation
- [x] Tests Vitest pour les procédures tRPC critiques (8 tests, 2 fichiers)
- [x] 0 erreur TypeScript
- [ ] Checkpoint final et commit GitHub