queue-med/todo.md

77 lines
3.8 KiB
Markdown
Raw Permalink 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
- [x] Page patient enrichie (progression animée, alertes)
- [x] Écran d'affichage avec animation de numéro appelé + indicateur connexion
- [x] Landing page : section témoignages + perspective médecin/patient
- [x] Export CSV des analytics par cabinet
- [x] README.md et MANUS_HANDOFF.md
- [x] 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
- [x] Checkpoint final et commit GitHub
## Phase 11 : Finitions & Mode Opératoire
- [x] Page SubscriptionPage améliorée (statut essai, compte à rebours, FAQ)
- [x] Amélioration page PrintTicket (mise en page imprimable propre, styles @media print)
- [x] Mode opératoire complet (guide médecin + guide patient + déploiement) en Markdown + PDF 10 pages
- [x] Checkpoint final v1.2
## Phase 12 : Améliorations UX & Robustesse (v1.3)
- [x] Favicon SVG QueueMed (croix médicale + lignes de file)
- [x] Manifest PWA (installable sur mobile, thème teal, langue fr)
- [x] index.html : meta SEO, Open Graph, preconnect Google Fonts, lang=fr
- [x] Onboarding wizard 3 étapes (cabinet, paramètres, succès)
- [x] Page Centre d'aide avec FAQ 15 questions par catégorie
- [x] Page Affiche QR imprimable A4 (styles @media print)
- [x] Dashboard : bouton onboarding pour nouveaux utilisateurs, lien Aide
- [x] QueueManagement : bouton Affiche QR dans section QR Code
- [x] clinic.create retourne l'id du cabinet créé
- [x] Tests Vitest : 13/13 passent (3 fichiers de test)
- [x] 0 erreur TypeScript
- [x] Checkpoint v1.3