Migré depuis github.com/Tarzzan/queue-med (2026-04-25)
Find a file
2026-04-25 17:14:16 +00:00
client feat: Phase 3 frontend — AdminPanel, PractitionerManager, practitioner filter in QueueManagement 2026-04-25 17:14:16 +00:00
docs_ref init: project skeleton with reference files and CLAUDE.md 2026-04-25 03:34:16 +00:00
scripts security: Phase 1 hardening - rate limit, helmet, CORS, JWT, session persistence 2026-04-25 13:06:51 +00:00
server feat: Phase 3 backend — admin procedures, multi-practitioner schema, advanced analytics 2026-04-25 16:15:55 +00:00
shared initial: QueueMed v1.0 MVP — file d'attente, WhatsApp, auth, dashboard 2026-04-25 12:52:35 +00:00
src_ref init: project skeleton with reference files and CLAUDE.md 2026-04-25 03:34:16 +00:00
.dockerignore initial: QueueMed v1.0 MVP — file d'attente, WhatsApp, auth, dashboard 2026-04-25 12:52:35 +00:00
.env.example security: Phase 1 hardening - rate limit, helmet, CORS, JWT, session persistence 2026-04-25 13:06:51 +00:00
.gitignore initial: QueueMed v1.0 MVP — file d'attente, WhatsApp, auth, dashboard 2026-04-25 12:52:35 +00:00
CLAUDE.md init: project skeleton with reference files and CLAUDE.md 2026-04-25 03:34:16 +00:00
docker-compose.yml security: Phase 1 hardening - rate limit, helmet, CORS, JWT, session persistence 2026-04-25 13:06:51 +00:00
Dockerfile security: Phase 1 hardening - rate limit, helmet, CORS, JWT, session persistence 2026-04-25 13:06:51 +00:00
drizzle.config.ts initial: QueueMed v1.0 MVP — file d'attente, WhatsApp, auth, dashboard 2026-04-25 12:52:35 +00:00
MANUS_HANDOFF.md init: project skeleton with reference files and CLAUDE.md 2026-04-25 03:34:16 +00:00
MODE_OPERATOIRE.md init: project skeleton with reference files and CLAUDE.md 2026-04-25 03:34:16 +00:00
package-lock.json feat: Phase 3 backend — admin procedures, multi-practitioner schema, advanced analytics 2026-04-25 16:15:55 +00:00
package.json feat: Phase 3 backend — admin procedures, multi-practitioner schema, advanced analytics 2026-04-25 16:15:55 +00:00
README.md init: project skeleton with reference files and CLAUDE.md 2026-04-25 03:34:16 +00:00
tsconfig.json feat: Phase 2 — i18n FR/EN all pages, PWA setup, forgot password, SEO meta 2026-04-25 15:55:38 +00:00
vite.config.ts feat: Phase 2 — i18n FR/EN all pages, PWA setup, forgot password, SEO meta 2026-04-25 15:55:38 +00: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.