Migré depuis github.com/Tarzzan/queue-med (2026-04-25)
Find a file
2026-02-27 18:10:13 -05:00
docs feat: QueueMed v1.0.0 — Documentation et handoff 2026-02-27 10:49:35 -05:00
src feat(v1.3): onboarding wizard, help center, QR poster A4, PWA manifest, 13 tests passing 2026-02-27 18:10:13 -05:00
.gitignore feat: QueueMed v1.0.0 — Documentation et handoff 2026-02-27 10:49:35 -05:00
AGENT_CONTEXT.md feat: QueueMed v1.0.0 — Documentation et handoff 2026-02-27 10:49:35 -05:00
AUTHORS.md feat: QueueMed v1.0.0 — Documentation et handoff 2026-02-27 10:49:35 -05:00
MANUS_HANDOFF.md feat: QueueMed v1.0.0 — Documentation et handoff 2026-02-27 10:49:35 -05:00
MODE_OPERATOIRE.md docs: Mode opératoire complet v1.2 (10 pages) 2026-02-27 10:59:47 -05:00
MODE_OPERATOIRE_QueueMed.pdf docs: Ajout du PDF mode opératoire (10 pages) 2026-02-27 11:11:13 -05:00
README.md feat: QueueMed v1.0.0 — Documentation et handoff 2026-02-27 10:49:35 -05:00
ROADMAP.html feat: QueueMed v1.0.0 — Documentation et handoff 2026-02-27 10:49:35 -05:00
todo.md feat(v1.3): onboarding wizard, help center, QR poster A4, PWA manifest, 13 tests passing 2026-02-27 18:10:13 -05:00

QueueMed — Salle d'attente virtuelle pour cabinets médicaux

Plateforme SaaS de gestion de file d'attente numérique pour les médecins qui reçoivent sans rendez-vous.
Conçue et développée par William MERI — v1.0.0


Présentation

QueueMed transforme la salle d'attente physique en une file d'attente virtuelle accessible depuis n'importe quel smartphone. Les patients scannent un QR code anti-triche à l'accueil, suivent leur position en temps réel et reçoivent une alerte quand leur tour approche — leur permettant d'attendre où ils le souhaitent.

Les médecins bénéficient d'un tableau de bord complet pour gérer la file, appeler les patients, consulter des analytics d'affluence et gérer plusieurs cabinets depuis une interface unifiée.


Fonctionnalités principales

Fonctionnalité Description
QR Code anti-triche Token unique rotatif par cabinet (configurable : 5 min à 24h). Impossible de partager ou falsifier sa position.
File d'attente temps réel Mise à jour instantanée via WebSocket (Socket.io). Position, temps estimé, numéro de ticket.
Écran d'affichage Interface tablette/moniteur avec numéro appelé animé, ticker défilant et indicateur de connexion.
Interface patient Aucun compte requis. Scan QR → suivi live → alerte au bon moment.
Tableau de bord médecin Gestion de file, appel du suivant, marquage absent, réinitialisation, statistiques du jour.
Multi-cabinets Un médecin peut gérer plusieurs salles d'attente depuis un seul compte.
Tickets imprimables Numéro unique pour les patients sans smartphone. Inclusion totale garantie.
Analytics avancés Affluence par heure, par jour, temps d'attente moyen, recommandations IA, export CSV.
Abonnement mensuel Essai gratuit 30 jours, puis blocage si non abonné. Prêt pour intégration Stripe.
Notifications push Alertes navigateur quand le tour approche (Web Push API).

Stack technique

Couche Technologie
Frontend React 19, Tailwind CSS 4, shadcn/ui, Recharts, Framer Motion
Backend Express 4, tRPC 11, Socket.io 4
Base de données MySQL/TiDB via Drizzle ORM
Auth Manus OAuth (JWT, session cookie)
QR Code qrcode npm package
Tests Vitest (8 tests, 0 erreurs TS)
Déploiement Manus Hosting (CDN, HTTPS, domaine personnalisé)

Architecture de la base de données

users          → Comptes médecins (OAuth)
subscriptions  → Abonnements (trial/active/expired/canceled)
clinics        → Cabinets médicaux (1 médecin → N cabinets)
queueEntries   → Entrées dans la file (token anti-triche, position, statut)
analyticsEvents → Événements pour les graphiques d'affluence

Routes de l'application

Route Description Accès
/ Landing page (hero, features, pricing, témoignages) Public
/dashboard Tableau de bord médecin Authentifié
/dashboard/clinics Gestion des cabinets Authentifié
/dashboard/queue/:clinicId Gestion de la file en temps réel Authentifié
/dashboard/analytics Analytics et export CSV Authentifié
/display/:clinicId Écran d'affichage tablette/moniteur Public
/queue/:token Interface patient (suivi temps réel) Public
/ticket/:entryId Page ticket imprimable Public

Variables d'environnement

Toutes les variables sont injectées automatiquement par la plateforme Manus. Aucune configuration manuelle requise.

Pour l'intégration Stripe (à activer) :

  • STRIPE_SECRET_KEY — Clé secrète Stripe
  • VITE_STRIPE_PUBLISHABLE_KEY — Clé publique Stripe
  • STRIPE_WEBHOOK_SECRET — Secret webhook Stripe

Lancer le projet en local

pnpm install
pnpm db:push
pnpm dev

Tests

pnpm test
# 8 tests, 0 erreurs TypeScript

Roadmap (prochaines versions)

  • Intégration Stripe complète (checkout, webhooks, portail client)
  • Notifications SMS (Twilio)
  • Application mobile React Native
  • Intégration agenda médecin (Doctolib API)
  • Mode multi-praticiens par cabinet
  • Rapports PDF automatiques hebdomadaires

Auteur

William MERI — Conçu avec QueueMed v1.0.0
© 2026 QueueMed. Tous droits réservés.