Le site et le compte participant
Ce que fait le site public : le catalogue d'événements et ses filtres, la page d'événement, le choix des places, le paiement, les billets, commandes, événements enregistrés et profil du participant, le formulaire de contact, les moteurs de recherche et les balises marketing.
Pour le pack Full Stack
Pages
Chaque page existe en anglais sous /en et en arabe sous /ar. Le site n'a pas de données propres : chaque événement, place, réservation, commande et billet vient de l'API Ticketory.
| Page | Chemin | Ce qu'elle affiche |
|---|---|---|
| Accueil | /en | Une bannière avec des billets en direct, puis la découverte, le fonctionnement, les places, le contrôle des billets, les organisateurs, les lieux, les tarifs et les questions fréquentes, et un appel à l'action. |
| Événements | /en/events | Le catalogue, avec recherche et filtres conservés dans l'adresse, six événements par page. |
| Un événement | /en/events/design-talks | Les onglets À propos, Programme et Lieu, le panneau de réservation avec les types de billets, un aperçu des places, l'enregistrement, et l'organisateur. |
| Choix des places | /en/events/design-talks/seats | Le plan des places en direct d'un événement à places réservées, avec le compte à rebours de la réservation. |
| Paiement | /en/checkout | Les informations de l'acheteur, le moyen de paiement et les conditions. Elle s'ouvre à partir d'une sélection réservée. |
| Confirmation de commande | /en/orders/TKT-1042/confirmation | Un billet avec un code QR par place, les billets PDF, un fichier de calendrier et l'état de l'e-mail de billets. Seul son acheteur peut l'ouvrir. |
| Mes billets, commandes, profil | /en/account/tickets, /en/account/orders, /en/account/profile | Les pages propres du participant connecté. |
| Événements enregistrés | /en/saved | Les événements que le participant a marqués d'une étoile. |
| Lieux, organisateurs | /en/venues, /en/organisers | Des annuaires, chacun avec une page par lieu ou par organisateur et ses événements. |
| Tarifs, FAQ, contact | /en/pricing, /en/faq, /en/contact | Des offres d'exemple et les frais de réservation, les questions fréquentes, et le formulaire de contact. |
| Se connecter, créer un compte | /en/auth/login, /en/auth/register | Avec la réinitialisation du mot de passe et la vérification de l'e-mail à côté. |
| Confidentialité, conditions, annulations | /en/privacy, /en/terms, /en/cancellation-policy | Textes modèles dans messages/legal à réécrire pour votre activité avant la mise en ligne. |
« Sell tickets » et les liens organisateur envoient les organisateurs vers la connexion du tableau de bord à NEXT_PUBLIC_DASHBOARD_URL.
Le catalogue d'événements
- Une recherche dans les titres, résumés, lieux, villes et organisateurs, une ville, une période et une catégorie (
workshop,talk,festival), conservées dans l'adresse sous les nomsq,city,from,to,categoryetpage, si bien qu'une recherche peut être partagée, actualisée et parcourue avec précédent et suivant. - Seuls les événements publics à venir apparaissent, les plus proches d'abord. Les brouillons, les événements non listés, annulés et archivés n'y figurent jamais ; un événement non listé se vend par son seul lien.
- Des données d'exemple neuves listent 22 événements de quatre organisateurs, dont trois en cours.
La page d'événement et le choix des places
- Un événement n'a pas de photo : son titre, sa date et sa couleur sont dessinés comme un billet. L'onglet Programme affiche l'agenda dans le fuseau horaire propre à l'événement, et l'onglet Lieu son accès, ses transports et sa capacité.
- Places réservées : Select seats ouvre le plan des places. Choisir la première place démarre la réservation, qui garde les places pendant la durée de réservation de l'organisateur (dix minutes dans les données d'exemple), comptée sur l'horloge du serveur. Le plan est relu toutes les 20 secondes, fonctionne au clavier et propose une vue en liste accessible et un zoom. Une commande contient au plus 8 places.
- Entrée libre : l'acheteur choisit une quantité sur la page de l'événement et appuie sur Continue, ce qui réserve les places.
- Un événement complet reste ouvert et peut encore être enregistré ; un événement annulé l'indique et ne vend rien.
Paiement
Le paiement n'exige aucun compte. L'acheteur indique un prénom, un nom et un e-mail, choisit Stripe, PayPal ou Test payment (selon ce que propose l'API), accepte les conditions et appuie sur Continue to payment. Le paiement lui-même se fait sur la page propre du fournisseur, ou sur la page de paiement de test qui en tient lieu ; aucun champ de carte n'est jamais sur le site. Les billets gratuits n'affichent aucun moyen de paiement, et Get tickets ouvre aussitôt la confirmation.
La réservation appartient à l'onglet du navigateur qui l'a faite. La confirmation n'affiche les billets que lorsque l'API indique la commande payée.
Le compte participant
- Créer un compte : prénom, nom, e-mail et un mot de passe de 8 à 72 caractères avec au moins une lettre et un chiffre. L'API envoie par e-mail un code de vérification à six chiffres, valable 24 heures ; sans service d'e-mail, le code est écrit dans le journal de l'API.
- Les commandes d'invité rejoignent le compte : une fois le code accepté, chaque commande passée avec cet e-mail devient celle du compte.
- Mes billets : les réservations à venir et passées avec un calendrier, et chaque billet avec son code QR, son PDF et son fichier de calendrier.
- Commandes : chaque commande avec son reçu et une chronologie de ce qui lui est arrivé.
- Événements enregistrés : l'étoile d'un événement l'enregistre dans le compte. Un visiteur non connecté est d'abord renvoyé vers la connexion.
- Profil : le nom et l'e-mail (un nouvel e-mail demande à être vérifié de nouveau) et deux préférences d'e-mail. Event reminders (activé par défaut) envoie un e-mail environ un jour avant chaque événement pour lequel le participant a des billets, en les listant. News and offers est seulement enregistré comme choix du participant : le template n'envoie aucun e-mail d'actualités. Les e-mails de billets, de reçus et de remboursements partent toujours.
- Connexion : Remember me garde le participant connecté 30 jours au lieu d'un. Un mauvais e-mail et un mauvais mot de passe donnent le même message, et le lien de réinitialisation du mot de passe fonctionne une heure.
Les données d'exemple incluent un participant avec huit commandes et quatre événements enregistrés ; ses identifiants de connexion sont dans le guide d'installation.
Le formulaire de contact
Un nom, un e-mail, un sujet (une question générale, billets et commandes, vendre en tant qu'organisateur, l'offre Scale, ou presse) et un message de 10 à 2000 caractères. Chacun devient une demande dans le tableau de bord, avec une notification aux membres de l'équipe qui peuvent lire les demandes.
Le formulaire contient un champ caché qui piège les robots, n'envoie le même message qu'une seule fois, et accepte cinq envois par adresse en dix minutes. Derrière un reverse proxy, définissez TRUST_PROXY=1 dans le .env de l'API, sinon tous les visiteurs se partagent le quota du proxy.
Comment les changements atteignent les pages
Les pages d'accueil, d'événement, de lieu et d'organisateur sont pré-générées et conservées une heure au plus. Quand un événement est publié, modifié, annulé ou complet, l'API demande au site de les reconstruire aussitôt, à condition que les deux partagent le même REVALIDATE_SECRET. Docker Compose le configure de lui-même ; sans Docker, mettez la même valeur dans back-end/.env et storefront/.env. La disponibilité des places, les réservations, les billets et les pages du compte sont toujours lus en direct.
Moteurs de recherche
- Chaque page définit son propre titre, sa description, son adresse canonique et la variante de langue, construits à partir de
NEXT_PUBLIC_SITE_URL: définissez-le donc avec votre vraie adresse avant de faire le build. /sitemap.xmlliste chaque page publique dans les deux langues, chaque événement à venir du catalogue, et chaque lieu et organisateur./robots.txty renvoie et tient les robots à l'écart des pages de compte, de paiement, de commande et de connexion.- Les pages de compte, de paiement, de confirmation, de connexion, des événements enregistrés et du choix des places sont marquées
noindex.
Balises d'analyse et de suivi
Six réseaux sont branchés. Activez-en un en mettant son identifiant dans storefront/.env (avec Docker Compose, dans le .env à côté de docker-compose.yml) et en reconstruisant ; un identifiant laissé vide ne charge aucun script.
| Variable | Réseau |
|---|---|
NEXT_PUBLIC_GTM_ID | Google Tag Manager |
NEXT_PUBLIC_GA4_MEASUREMENT_ID | Google Analytics 4 |
NEXT_PUBLIC_META_PIXEL_ID | Facebook et Instagram |
NEXT_PUBLIC_TIKTOK_PIXEL_ID | TikTok |
NEXT_PUBLIC_SNAPCHAT_PIXEL_ID | Snapchat |
NEXT_PUBLIC_PINTEREST_TAG_ID |
| Événement | Quand |
|---|---|
page_view | Chaque changement de route |
view_event | Une page d'événement est affichée |
save_event | Un événement est enregistré |
begin_checkout | Les informations de paiement sont envoyées et l'acheteur part payer |
purchase | Une confirmation payée est affichée pour la première fois |
contact_submit | Le formulaire de contact est reçu |
- Si GA4 tourne dans votre conteneur Tag Manager, laissez l'identifiant GA4 vide, sinon chaque session est comptée deux fois.
NEXT_PUBLIC_ANALYTICS_CURRENCY(USDpar défaut) est envoyée avec un événement qui ne porte pas de devise propre, etNEXT_PUBLIC_ANALYTICS_DEBUG=trueconsigne chaque événement dans la console du navigateur.- Les balises se chargent dès que la page se charge. Si vous servez des visiteurs dans l'UE ou au Royaume-Uni, placez d'abord devant eux une bannière de consentement.
Comment s'organise le code du site
Inclus avec votre achat. Connectez-vous pour le lire, ou ouvrez-le dans votre téléchargement.
La structure du code et les conventions à respecter quand vous le modifiez.