Origin Light Tour · Billetterie et contrôle des entrées
Billetterie événementielle de bout en bout : storefront bilingue, back-office, application de scan à l'entrée, paiements mobile money et carte, billets PDF à QR code.

Chaque édition de l'Origin Light Tour se pilotait avec des outils séparés : vente par formulaire, encaissement manuel, listes d'invités sur tableur, contrôle à l'entrée sur papier. Rien ne reliait un paiement à un billet, ni un billet à son porteur au moment du contrôle — ce qui rend le double passage impossible à détecter et le comptage d'entrées impossible à fiabiliser.
Un monorepo Turborepo avec une API AdonisJS 6 qui expose trois surfaces distinctes sur un même modèle Postgres : storefront public, back-office administrateur, application agent. L'achat se fait sans mot de passe — le client s'authentifie par code à usage unique envoyé par e-mail. Le paiement passe par Moneroo, qui couvre mobile money et carte, avec un service de surveillance des transactions côté serveur. Le billet est généré en PDF avec un QR code, puis scanné à l'entrée depuis un navigateur, ce qui enregistre quel agent a validé quel billet. Le storefront Next.js 15 est bilingue et la locale est portée par la transaction, pour que les e-mails et le billet sortent dans la langue de l'acheteur.
Deux règles métier ont structuré le modèle. La première : un type de billet peut plafonner le nombre d'achats par client, pour empêcher la revente sauvage sur les catégories tendues. La seconde : un billet gratuit suit exactement le même parcours qu'un billet payant, sans branche de code parallèle — même transaction, même génération de PDF, même scan à l'entrée, seul le montant change.
Le contrôle d'accès des agents est explicite : un membre d'équipe est rattaché aux événements sur lesquels il est habilité, pas à l'ensemble du catalogue. Un agent recruté pour une soirée ne peut pas scanner la suivante.


- Surfaces applicatives
- 3
- Modèles de données
- 11
- Services métier
- 9
- Langues
- FR + EN
- Tailwind CSS
- Vite
- S3
- AdonisJS
- GSAP
- Postgres
- React
- Next.js
- TypeScript




