SPB Git forge

spb/sorti-ka

Public

Toutes les sorties et tous les événements du Québec, un seul endroit — 7 connecteurs, fiches SSR, design Groupe KA.

58commits 1branches 0releases
13.7 MBsize
maindefault branch
17 days agolast push
HTML 82.9% Python 15.2% TypeScript 0.9% JavaScript 0.7%

feat(doc): page documentation /doc (guide + captures) + lien footer + PDF téléchargeable

Simon-Pierre Boucher committed 1 mo ago (Aug 24, 2026) parent 05f55ca

7 changed files +189 −0

added frontend/doc/img/etape1.png +0 −0

Binary file not shown.

added frontend/doc/img/etape2.png +0 −0

Binary file not shown.

added frontend/doc/img/etape3.png +0 −0

Binary file not shown.

added frontend/doc/img/etape4.png +0 −0

Binary file not shown.

added frontend/doc/index.html +188 −0
@@ -0,0 +1,188 @@
1 +<!DOCTYPE html>
2 +<!-- Page /doc de Sorti·Ka — générée depuis le gabarit commun Groupe KA (2026-08-24). -->
3 +<html lang="fr">
4 +<head>
5 +<meta charset="utf-8">
6 +<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
7 +<title>Documentation — Sorti·Ka</title>
8 +<meta name="description" content="Comment fonctionne Sorti·Ka : guide pas à pas, données, architecture.">
9 +<style>
10 + :root{ --ink:#101014; --paper:#faf9f6; --accent:#d6336c; --muted:#6b6b70; --line:#e6e4de; }
11 + *{box-sizing:border-box} html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);
12 + font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
13 + .container{max-width:960px;margin:0 auto;padding:0 20px}
14 + header.doc{background:var(--ink);color:var(--paper);padding:20px 0}
15 + header.doc .container{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
16 + header.doc a{color:var(--paper);text-decoration:none}
17 + .wordmark{font-weight:800;font-size:20px;letter-spacing:.02em}
18 + .wordmark .ka{color:var(--accent)}
19 + .btn-pdf{display:inline-block;background:var(--accent);color:#fff;font-weight:700;
20 + padding:10px 18px;border-radius:999px;text-decoration:none;font-size:15px}
21 + .hero{padding:48px 0 8px}
22 + .hero h1{font-size:clamp(28px,5vw,44px);line-height:1.1;margin:0 0 12px}
23 + .hero h1 mark{background:var(--accent);color:#fff;padding:2px 8px}
24 + .hero p.lead{font-size:18px;color:var(--muted);max-width:640px}
25 + .kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
26 + border-left:3px solid var(--accent);padding-left:10px;margin:40px 0 8px;font-weight:700}
27 + section{padding:8px 0 16px}
28 + h2{font-size:26px;margin:6px 0 12px}
29 + .step{display:grid;grid-template-columns:56px 1fr;gap:16px;margin:26px 0;align-items:start}
30 + .step .num{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--accent);
31 + display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}
32 + .step h3{margin:6px 0 6px;font-size:19px}
33 + .step p{margin:0 0 12px;color:#3a3a40}
34 + .shot{border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 8px 30px rgba(16,16,20,.08)}
35 + .shot img{display:block;width:100%;height:auto}
36 + .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:16px 0}
37 + .card{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff}
38 + .card b{display:block;margin-bottom:6px}
39 + table{border-collapse:collapse;width:100%;font-size:15px}
40 + th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
41 + th{background:var(--ink);color:var(--paper)}
42 + footer.doc{margin-top:56px;background:var(--ink);color:var(--paper);padding:28px 0;font-size:14px}
43 + footer.doc a{color:var(--accent);text-decoration:none}
44 + @media print{
45 + header.doc .btn-pdf{display:none}
46 + .shot{box-shadow:none;break-inside:avoid}
47 + .step{break-inside:avoid}
48 + a{color:inherit;text-decoration:none}
49 + }
50 + @media(max-width:640px){ .step{grid-template-columns:40px 1fr} .step .num{width:34px;height:34px;font-size:15px} }
51 +</style>
52 +</head>
53 +<body>
54 +<header class="doc">
55 + <div class="container">
56 + <a class="wordmark" href="/">Sorti<span class="ka">·Ka</span></a>
57 + <nav style="display:flex;gap:14px;align-items:center">
58 + <a href="/">← Retour au site</a>
59 + <a class="btn-pdf" href="./sorti-ka-documentation.pdf" download>Télécharger le PDF</a>
60 + </nav>
61 + </div>
62 +</header>
63 +
64 +<div class="container">
65 + <div class="hero">
66 + <p class="kicker">Documentation · mise à jour 2026-08-24</p>
67 + <h1>Comment fonctionne <mark>Sorti·Ka</mark></h1>
68 + <p class="lead">Toutes les sorties et tous les événements du Québec — concerts, festivals, spectacles, expos, sport, famille — au même endroit.</p>
69 + </div>
70 +
71 + <section>
72 + <p class="kicker">Vue d'ensemble</p>
73 + <h2>À quoi sert le site</h2>
74 + <p>Trouver quoi faire au Québec, c'est normalement ouvrir dix sites : les billetteries ne montrent que leurs
75 + propres spectacles, les calendriers municipaux que leur ville, les sites touristiques que leurs membres.
76 + Sorti·Ka retourne le problème : un agrégateur indépendant qui couvre les 17 régions administratives, avec
77 + dates, lieux, gratuité, fiche par événement et <b>lien direct vers la billetterie ou la source originale</b>.
78 + Sorti·Ka n'est pas une billetterie : c'est un index fidèle — aucun prix inventé, aucune date devinée, chaque
79 + fiche est attribuée à sa source. Mise à jour horaire, automatiquement.</p>
80 + <div class="cards">
81 + <div class="card"><b>18 000+ événements actifs</b>Dans environ 330 villes des 17 régions administratives —
82 + dont plus de 3 600 événements gratuits à venir.</div>
83 + <div class="card"><b>~30 connecteurs actifs</b>Billetteries, données ouvertes officielles, diffuseurs et
84 + salles, portails régionaux — 44 sources au registre.</div>
85 + <div class="card"><b>Mise à jour horaire</b>Un watcher resynchronise toutes les sources chaque heure,
86 + détecte les changements et retire les événements disparus.</div>
87 + <div class="card"><b>14 catégories canoniques</b>Concerts, festivals, arts de la scène, expos, cinéma,
88 + sport, plein air, famille, gastronomie… avec filtre gratuité.</div>
89 + </div>
90 + </section>
91 +
92 + <section>
93 + <p class="kicker">Guide pas à pas</p>
94 + <h2>Utiliser le site en 4 étapes</h2>
95 +
96 + <div class="step">
97 + <div class="num">1</div>
98 + <div>
99 + <h3>Arriver sur l'accueil</h3>
100 + <p>L'accueil affiche le décompte en direct (événements à venir, gratuits, régions, villes) et le bloc de
101 + recherche : texte libre, région, période, puis les 14 catégories et le filtre « ✦ Gratuit ». Les cartes
102 + d'événements défilent dessous, les plus proches dans le temps d'abord.</p>
103 + <div class="shot"><img src="./img/etape1.png" alt="Étape 1 — accueil de Sorti·Ka"></div>
104 + </div>
105 + </div>
106 +
107 + <div class="step">
108 + <div class="num">2</div>
109 + <div>
110 + <h3>Filtrer la liste</h3>
111 + <p>Tapez un mot-clé (ici « festival »), choisissez une région ou une période, ou activez un filtre de
112 + catégorie ou de gratuité : le compteur et la liste se mettent à jour instantanément. Les filtres se
113 + combinent — par exemple « Musique » + « Gratuit » + votre région.</p>
114 + <div class="shot"><img src="./img/etape2.png" alt="Étape 2 — recherche filtrée d'événements"></div>
115 + </div>
116 + </div>
117 +
118 + <div class="step">
119 + <div class="num">3</div>
120 + <div>
121 + <h3>Ouvrir la fiche d'un événement</h3>
122 + <p>La fiche donne les dates, la ville et la région, l'organisateur, le lieu sur la carte, la source avec sa
123 + date de captation, et des événements similaires. Le bouton « Billets · fiche originale » mène directement
124 + à la billetterie ou au site officiel — Sorti·Ka ne vend rien.</p>
125 + <div class="shot"><img src="./img/etape3.png" alt="Étape 3 — fiche d'événement avec lien billetterie"></div>
126 + </div>
127 + </div>
128 +
129 + <div class="step">
130 + <div class="num">4</div>
131 + <div>
132 + <h3>Consulter les statistiques</h3>
133 + <p>La page « Stats » expose le tableau de bord en temps réel : volumes, gratuité, villes couvertes, sources
134 + branchées, prix moyen des billets, événements ajoutés par jour — avec rapports PDF complets ou
135 + personnalisés à télécharger.</p>
136 + <div class="shot"><img src="./img/etape4.png" alt="Étape 4 — tableau de bord statistiques"></div>
137 + </div>
138 + </div>
139 + </section>
140 +
141 + <section>
142 + <p class="kicker">Sous le capot</p>
143 + <h2>D'où viennent les données</h2>
144 + <p>Chaque source a son <b>connecteur dédié</b> (~30 actifs, 44 au registre) : billetteries (Le point de vente,
145 + evenko, Ticketpro, Ticket Accès, Tuxedo Billet, Ovation, Eventbrite), données ouvertes officielles
146 + (SIT Québec/Tourinsoft, Ville de Montréal, Laval, Sherbrooke, Brossard, Longueuil), diffuseurs et salles
147 + (La Vitrine, Place des Arts…), portails régionaux (Montérégie, Outaouais, Lanaudière, Cantons-de-l'Est,
148 + Chaudière-Appalaches, Bas-Saint-Laurent, Gaspésie, Centre-du-Québec, Saguenay…), Atuvu.ca, Bandsintown,
149 + LHJMQ, Québec animée. Un watcher <b>resynchronise chaque heure</b> : chaque événement est normalisé vers un
150 + schéma unique, rattaché à sa ville et sa région via le répertoire des municipalités MAMH (1 250 villes et
151 + alias), puis <b>dédupliqué entre les sources</b> (empreinte titre + ville + date : un même concert publié par
152 + 3 sources = une seule carte, la fiche la plus riche gagne). Un événement disparu de sa source bénéficie d'un
153 + délai de grâce de 2 synchronisations avant retrait, et une alerte de dérive se déclenche quand une source
154 + casse — rien n'est inventé, tout est attribué.</p>
155 + </section>
156 +
157 + <section>
158 + <p class="kicker">Questions fréquentes</p>
159 + <h2>FAQ</h2>
160 + <div class="cards">
161 + <div class="card"><b>Peut-on acheter des billets sur Sorti·Ka ?</b>
162 + Non. Sorti·Ka est un index, pas une billetterie : chaque fiche renvoie par lien direct vers la billetterie
163 + ou la source originale, où se fait l'achat.</div>
164 + <div class="card"><b>À quelle fréquence les événements sont-ils mis à jour ?</b>
165 + Toutes les heures, automatiquement. Les changements (dates, prix, annulations) sont détectés en continu et
166 + un événement retiré de sa source disparaît après un court délai de grâce.</div>
167 + <div class="card"><b>Pourquoi certains événements n'ont-ils pas de prix ?</b>
168 + Parce que la source ne l'affiche pas — Sorti·Ka n'invente aucun prix. Quand il existe, le libellé de prix
169 + original est conservé, et plus de 3 600 événements gratuits sont identifiés comme tels.</div>
170 + <div class="card"><b>Un même spectacle apparaît-il en double ?</b>
171 + Normalement non : la déduplication inter-sources fusionne les doublons (même titre, même ville, même date)
172 + en une seule carte, en gardant la fiche la plus complète.</div>
173 + <div class="card"><b>Couvrez-vous ma région ?</b>
174 + Oui — les 17 régions administratives du Québec sont couvertes, environ 330 villes, grâce aux portails
175 + régionaux et aux données ouvertes municipales en plus des billetteries.</div>
176 + </div>
177 + </section>
178 +</div>
179 +
180 +<footer class="doc">
181 + <div class="container">
182 + <p><b>Sorti·Ka</b> — un service <a href="https://www.groupe-ka.com">Groupe KA</a>.
183 + Écosystème : les 13 plateformes sont liées au pied de chaque site.</p>
184 + <p>© 2026 Groupe KA — Simon-Pierre Boucher · <a href="mailto:contact@spboucher.ai">contact@spboucher.ai</a></p>
185 + </div>
186 +</footer>
187 +</body>
188 +</html>
added frontend/doc/sorti-ka-documentation.pdf +0 −0

Binary file not shown.

modified frontend/index.html +1 −0
@@ -675,6 +675,7 @@ button{font-family:inherit}
675 675 lieux : © contributeurs OpenStreetMap (ODbL).</p>
676 676 <p class="legal">© 2026 Groupe KA — Simon-Pierre Boucher
677 677 · <a data-nav href="/contact">Contact</a>
678 + · <a href="/doc/">Documentation</a>
678 679 · <a href="https://www.groupe-ka.com/conditions" target="_blank" rel="noopener noreferrer">Conditions d'utilisation</a>
679 680 · <a href="https://www.groupe-ka.com/confidentialite" target="_blank" rel="noopener noreferrer">Politique de confidentialité</a>
680 681 · <a href="https://www.groupe-ka.com/loi-25" target="_blank" rel="noopener noreferrer">Protection des renseignements personnels (Loi 25)</a>
681 682