SPB Git forge

spb/groupe-ka

Public

Groupe KA — site du holding + KA ID (compte unique & SSO des 7 plateformes). Next.js 16, SQLite, Google & Apple login.

81commits 1branches 0releases
89.2 MBsize
maindefault branch
22 days agolast push
TypeScript 70.4% HTML 18.4% JavaScript 4% Python 3.8% CSS 3.4%
ZIP tar.gz
NameLast commitUpdated
assets stats v3 : rapports PDF personnalisés (catalogue, rendu au choix,... 1 mo ago
docs docs: README ultra détaillé + visite guidée en 10 captures 29 days ago
public feat(house-ka): 2e passe hub — layout JSON-LD + footers, alerts,... 1 mo ago
scripts archive 2026-09-04 : retrait de Trouve·Ka (section phare, /recherche,... 22 days ago
src archive 2026-09-04 : retrait de Trouve·Ka (section phare, /recherche,... 22 days ago
.gitignore Page /telecharger — l app KA sur iOS (TestFlight), Android (APK signé... 1 mo ago
next-env.d.ts feat: initial commit 1 mo ago
next.config.ts stats v3 : rapports PDF personnalisés (catalogue, rendu au choix,... 1 mo ago
package-lock.json stats v3 : rapports PDF personnalisés (catalogue, rendu au choix,... 1 mo ago
package.json stats v3 : rapports PDF personnalisés (catalogue, rendu au choix,... 1 mo ago
postcss.config.mjs feat: initial commit 1 mo ago
README.md docs: README ultra détaillé + visite guidée en 10 captures 29 days ago
tsconfig.json feat: initial commit 1 mo ago
README.md source

Groupe·Ka — Le portail de l'écosystème ·Ka

Groupe·Ka

Le portail de l'écosystème ·Ka

Site Documentation PDF Nœud Port PM2

Santé du hub (live) Logements Lou·Ka (live) Propriétés Immo·Ka (live) Véhicules Auto·Ka (live) Produits Fabri·Ka (live) Aliments Food·Ka (live) Restaurants Resto·Ka (live) Sorties Sorti·Ka (live) Emplois Job·Ka (live) Créateurs Créa·Ka (live)

↑ pastilles live — les chiffres sont tirés en direct des /api/stats publics de l'écosystème, exactement comme la page d'accueil du hub.

Next.js React TypeScript Tailwind CSS SQLite ngrok Groupe KA spbgit

# Présentation & mission

Groupe·Ka (www.groupe-ka.com) est le hub central de l'écosystème ·Ka — la constellation d'agrégateurs automatisés du groupe, née au Québec et désormais étendue au Canada (House·Ka, Rent·Ka). Le hub joue trois rôles :

  1. La vitrine du groupe — présentation des plateformes, métriques live tirées en direct des /api/stats de chaque site, pages corporatives /agents, /investisseurs, /telecharger, /marque.
  2. Le KA ID, l'identité centrale du groupe — un seul compte (courriel + mot de passe, Google, Apple, lien magique) et un ka_id partagé par toutes les plateformes via un SSO maison, avec carte de membre, passe Apple Wallet, favoris unifiés et un moteur de personnalisation (« Mon univers Ka » / /mon-ka).
  3. Une tour de contrôle publique — pages /status (disponibilité de 19 cibles : les 16 sites d'ecosystem.json + les 3 agents gardiens ka2.bot/ka4.bot/ka6.bot, historique 90 jours, ticks aux 5 min) et /stats (tableau de bord maître consolidé).

Pour qui ? Les visiteurs qui découvrent le groupe, les membres qui gèrent leur compte KA ID (profil, favoris « Mon univers Ka », carte de membre, jeton API personnel, alertes personnalisées), et les investisseurs (dossier corporatif PDF).

# Sommaire

# Visite guidée

10 captures desktop du 2026-08-28 — l'état actuel du hub, page par page, telles que servies sur www.groupe-ka.com.

# 1 · Accueil — « Mille sites. Un seul ·Ka. »

Accueil du hub Groupe·Ka

La page d'accueil « HQ » v2 : héros géant, banderole carrousel des marques du groupe, figures d'agrégation live (tirées en direct des /api/stats de chaque plateforme, cache ISR 10 min) et index des plateformes en filets — House·Ka et Rent·Ka y sont intégrés partout depuis le 2026-08-28.

# 2 · Contact — le guichet unique du groupe

Page contact

Le formulaire /contact alimente le hub de communication interne (fini les courriels publics exposés) : chaque soumission arrive dans la console d'administration, où l'équipe la traite, l'annote et y répond via les boîtes courriel du groupe (Resend).

# 3 · Recherche — tout l'écosystème en une barre

Recherche globale

/recherche interroge le moteur Trouve·Ka et cherche d'un coup dans toutes les plateformes du groupe : logements, propriétés, véhicules, produits, restos, sorties, emplois, créateurs… Résultats typés avec l'accent de couleur de chaque univers.

# 4 · Stats — le tableau de bord maître

Tableau de bord maître /stats

/stats consolide en direct les métriques de tout l'écosystème : KPI par plateforme, sparklines, croissance en indice 100, et le ReportBuilder pour composer un rapport PDF personnalisé à partir du catalogue de métriques.

# 5 · Rapports — la mémoire quotidienne du groupe

Rapports quotidiens

/rapports archive le rapport quotidien automatisé : chaque matin à 6 h, une rédaction générée par Claude + un PDF sont produits et publiés sur /rapports/[date] — l'historique complet reste consultable.

# 6 · Status — la tour de contrôle publique

Page status

/status vérifie 19 cibles (les 16 sites d'ecosystem.json + les agents gardiens ka2/ka4/ka6.bot) : état en direct, temps de réponse, barres d'uptime 24 h / 7 j / 30 j sur un historique de 90 jours alimenté par un tick PM2 aux 5 minutes.

# 7 · Télécharger — les apps natives

Page télécharger

/telecharger distribue les applications du groupe : iOS (TestFlight), APK Android signé (avec SHA-256 publié) et DMG macOS notarié — le registre officiel des versions.

# 8 · Marque — l'identité visuelle des univers

Page marque

/marque expose l'identité de chaque plateforme : logos téléchargeables, palettes d'accents officielles et bannières — la source publique du design system ka-ui partagé par tout l'écosystème.

# 9 · Avis — notre rôle d'agrégateur

Page avis

/avis explique noir sur blanc ce que le groupe est (un agrégateur d'informations publiques) et n'est pas (ni courtier, ni vendeur, ni intermédiaire) : provenance des données, limites, et comment demander une correction ou un retrait.

# 10 · Bots — la déclaration de transparence

Page bots

/bots est la déclaration de transparence des robots d'indexation du groupe : données publiques uniquement, respect de robots.txt, identification claire des user-agents — l'engagement de collecte responsable, publié.

# Galerie mobile & desktop (2026-08-25)

Captures d'époque de l'accueil v2 « HQ » (mobile 390×844 · desktop 1440×900).

Accueil mobile
Accueil HQ — « Mille sites. Un seul ·Ka. »
Recherche mobile
Recherche globale de l'écosystème
Stats mobile
Tableau de bord maître consolidé
Rapports mobile
Rapports PDF quotidiens et personnalisés
Marque mobile
Page marque — logos des univers
Menu mobile
Nav v2 — panneau plein écran
Accueil desktop
Accueil HQ v2 — héros géant, bandes d'encre, index des plateformes en filets
Recherche
Recherche globale (Trouve·Ka intégré)
Stats
Stats consolidées + rapports personnalisés (ReportBuilder)
Rapports
Rapports quotidiens archivés
Agents
/agents — les agents IA du groupe
Investisseurs
/investisseurs — dossier corporatif
Marque
/marque — identité visuelle des univers (logos, palettes, bannières téléchargeables)

# Nouveautés récentes (2026-08-25 → 28)

  • Accueil v2 « HQ » — recomposition éditoriale majeure : héros géant, bandes d'encre pleine largeur, index des plateformes en filets, figures redessinées, nav épurée ; banderole carrousel des marques sous le héros (2026-08-28).
  • House·Ka et Rent·Ka rejoignent l'écosystème (2026-08-27) — maisons à vendre et loyers Canada hors Québec, intégrés à ecosystem.json, au SSO KA ID, aux figures d'accueil, à /status et aux alertes.
  • KA ID v2 — moteur de personnalisation (2026-08-26) — feature store central, page /mon-ka, alertes actives par courriel, filtrage collaboratif et matrix factorization (voir la section KA ID).
  • Hub de communication interne (2026-08-26) — fini les courriels publics : formulaire /contact → console admin, boîtes courriel du groupe via Resend (envoi, réception webhook, pièces jointes, gabarits signés).
  • Widget ka-agent v4 — cartes d'annonces cliquables (ka-card, palette écosystème) et choix de clarification en boutons (ka-choix).
  • Jeton API personnel (API·Ka) par KA ID + rapports PDF personnalisés (stats v3).

🗄️ Les captures d'époque sont conservées dans docs/archive/.

# KA ID — l'identité centrale

Le KA ID est la pièce maîtresse du hub : un seul compte pour tout l'écosystème.

  • Identifiant membre unique (ka- + 10 chiffres) créé au hub, source de vérité de tout le groupe.
  • Quatre modes de connexion : Google OAuth 2.0, Sign in with Apple, courriel + mot de passe (scrypt natif Node, zéro dépendance), et lien magique sans mot de passe ; vérification d'adresse à l'inscription et 2FA par code courriel au login mot de passe (courriels transactionnels Resend).
  • SSO maison vers les plateformes et les apps natives — 18 clients au registre (src/lib/sso.ts) : les 14 plateformes actives (dont House·Ka et Rent·Ka depuis le 2026-08-27), les apps ka-ios et ka-android, plus les alias historiques Ora·Ka et Toit·Ka — jeton JWT signé par plateforme, valide 5 min (/sso/authorize?client=<plateforme>).
  • Profil enrichi (bio, ville, réseaux sociaux, rôle) affiché par toutes les plateformes, avec page publique /u/[kaId].
  • Favoris unifiés « Mon univers Ka » — magasin central ; les plateformes poussent et lisent via /api/sso/favorites.
  • Personnalisation v2 (/mon-ka) — feature store central : journal d'interactions (le hub journalise aussi les favorite/unfavorite reçus par SSO pour couvrir les plateformes sans instrumentation), recherches sauvegardées avec alertes courriel actives (évaluées sur les API publiques, adaptateurs 9 apps, cadence choisie par le membre), éléments masqués, profil de préférences avec décroissance 30 j et signaux négatifs, filtrage collaboratif item-item par co-favoris, et matrix factorization implicite (ALS Hu-Koren-Volinsky, cron quotidien) qui s'active seule dès que le volume le permet. Le tout servi aux plateformes par les endpoints s2s HMAC /api/sso/{events,prefs,saved-searches,hide}.
  • Confidentialité Loi 25 intégrée — dans /mon-ka : 3 interrupteurs de consentement, effacement, réinitialisation et export JSON de ses données.
  • Carte de membre avec QR code + passe Apple Wallet signée (/api/wallet/pass).
  • Jeton API personnel (kapi_) généré depuis /compte pour l'API·Ka.

# Fonctionnalités

  • Page /status — 19 cibles vérifiées en direct (16 sites + agents ka2/ka4/ka6) + historique de disponibilité 90 jours (data/status/history.jsonl, ticks aux 5 min), uptime 24 h / 7 j / 30 j.
  • Page /stats — consolidation live des métriques de l'écosystème + rapports PDF personnalisés (/rapports, catalogue et ReportBuilder).
  • Rapport quotidien automatisé — rédaction Claude + PDF chaque matin (6 h), archivé sur /rapports/[date].
  • Recherche écosystème — barre dans le header + page /recherche propulsée par le moteur Trouve·Ka.
  • Hub de communication interne — formulaire /contact → console /admin (soumissions, notes, réponses) + boîtes courriel du groupe via Resend (webhook entrant, pièces jointes, gabarits signés Groupe KA).
  • Pages corporatives : /agents (agents gardiens ka2/ka4/ka6), /investisseurs (6 documents corporatifs PDF), /telecharger (apps iOS/Android/macOS), /avis, /bots, /marque (logos + palettes des plateformes).
  • Conformité : /loi-25, /conditions, /confidentialite, /retrait (droit de retrait des données).
  • KA Agent — bulle de chat IA du groupe (public/ka-agent.js) câblée sur toutes les pages (v4 : cartes d'annonces cliquables + choix en boutons ; déplaçable, plein écran, Markdown streaming).
  • ka-ui vendoré (src/ka/ + ecosystem.json) — design system, accents officiels et footer partagés de l'écosystème.

# Pages & routes

Toutes les pages vivent dans src/app/ (App Router). Vue d'ensemble :

Route Rôle
/ accueil « HQ » — héros, banderole des marques, figures live, index des plateformes
/recherche recherche globale de l'écosystème (moteur Trouve·Ka)
/stats tableau de bord maître consolidé + ReportBuilder
/rapports · /rapports/[date] rapports quotidiens automatisés (rédaction Claude + PDF), archivés
/status tour de contrôle publique — 19 cibles, uptime 24 h / 7 j / 30 j, historique 90 j
/connexion connexion KA ID (Google, Apple, courriel + mot de passe, lien magique, 2FA)
/compte · /compte/carte gestion du compte : profil, avatar, rôle, favoris, jeton kapi_, carte de membre + Wallet
/mon-ka personnalisation : « Pour vous », « Ce que KA a appris » (corrigeable), recherches + alertes, confidentialité Loi 25
/u/[kaId] page publique d'un membre
/sso/authorize point d'entrée SSO des plateformes clientes
/agents les agents IA du groupe (gardiens ka2/ka4/ka6)
/investisseurs dossier corporatif — 6 documents PDF
/telecharger apps natives iOS / Android / macOS
/marque identité visuelle : logos, palettes, bannières téléchargeables
/contact · /nous-joindre guichet unique — alimente le hub de communication interne
/avis avis : notre rôle d'agrégateur
/bots déclaration de transparence des robots d'indexation
/loi-25 · /conditions · /confidentialite · /retrait conformité et droit de retrait
/admin console interne (connexion dédiée) : soumissions de contact, boîtes courriel, équipe
/doc/ guide en ligne + PDF (servi depuis public/doc/)

# API (54 routes)

Toutes les routes vivent dans src/app/api/ (App Router Next.js) — 54 fichiers route.ts au total, regroupés par domaine :

Méthode(s) & route Rôle
POST /api/auth/register · POST /api/auth/login · POST /api/auth/logout comptes courriel + mot de passe (scrypt)
POST /api/auth/2fa · /api/auth/magic · /api/auth/magic/verify · /api/auth/email/verify 2FA par code courriel, lien magique, vérification d'adresse (Resend)
GET /api/auth/google · GET /api/auth/callback/google connexion Google OAuth 2.0 (vérification id_token par JWKS)
GET /api/auth/apple · POST /api/auth/callback/apple Sign in with Apple (client_secret ES256 signé à la volée)
GET /api/auth/me session courante (témoin HttpOnly ka_session, HS256, 30 jours)
GET/POST /api/profile · /api/profile/avatar · /api/profile/public · /api/profile/role profil enrichi + avatar (sharp) + page publique /u/[kaId]
GET/POST /api/sso/favorites · /api/sso/profile · /api/sso/token-verify contrats SSO consommés par les plateformes
/api/sso/events · /api/sso/prefs · /api/sso/saved-searches · /api/sso/hide personnalisation s2s (HMAC) : journal d'interactions, profil de préférences + recos MF, recherches sauvegardées, éléments masqués
GET/POST /api/favorites favoris « Mon univers Ka » du membre connecté
/api/monka/prefs · /api/monka/searches · /api/monka/privacy · /api/monka/export page /mon-ka : préférences corrigeables, alertes, consentements Loi 25, export JSON
GET /api/kaid/alerts/tick évaluation des alertes de recherches sauvegardées (clé KAID_TICK_KEY, cron PM2 horaire)
POST /api/account/token génération du jeton API personnel kapi_
GET /api/wallet/pass passe Apple Wallet signée (carte de membre)
POST /api/contact · POST /api/mail/inbound soumission du formulaire de contact ; webhook courriel entrant (Resend)
/api/admin/* (15 routes) console interne : login/logout/badge, soumissions (notes, réponses), boîtes courriel (envoi, aperçu, pièces jointes), équipe, mot de passe
GET /api/stats/report · /api/stats/catalog · POST /api/stats/report/custom · GET /api/stats/ecosystem-report rapports PDF (plateforme, catalogue, personnalisés, écosystème)
GET /api/rapports/[date]/pdf rapport quotidien archivé
GET /api/status/tick tick de disponibilité — vérifie les 19 cibles et enregistre l'historique (appelé aux 5 min par PM2 ; ⚠️ effet de bord, ne pas l'appeler en boucle)
GET /api/health santé du service → {"status":"ok","app":"groupe-ka"}

# Métriques live consolidées (sources)

Le hub tire ses chiffres en direct des endpoints publics des plateformes (src/lib/live.ts, cache serveur ISR 10 min, valeurs de repli en cas de panne). Instantané au 2026-08-24 (House·Ka/Rent·Ka au 2026-08-28) :

Plateforme Endpoint consommé Volume live
Lou·Ka lou-ka.com/api/stats 45 762 logements · 190 sources
Immo·Ka immo-ka.com/api/stats 67 735 propriétés · 48 sources · 3 273 villes
House·Ka house-ka.com/api/stats 260 279 maisons (Canada) · ~5 900 villes
Rent·Ka rent-ka.com/api/stats 8 955 loyers (Canada) · 78 sources
Vrai-Prix vrai-prix.com/api/stats 3 747 008 unités évaluées · 1 097 municipalités
Auto·Ka auto-ka.com/api/stats 48 388 véhicules · 129 sources
Fabri·Ka fabri-ka.com/api/stats 385 308 produits · 1 582 boutiques live
Food·Ka food-ka.com/api/stats 50 892 aliments · 57 sources
Resto·Ka resto-ka.com/api/stats 14 716 restaurants · 149 569 items de menus
Sorti·Ka sorti-ka.com/api/stats 18 186 sorties actives · 332 villes
Créa·Ka crea-ka.com/api/stats 12 791 créateurs · 18 942 comptes
Job·Ka job-ka.com/api/stats 21 492 emplois · 1 653 employeurs
Trouve·Ka trouve-ka.com/api/status 302 391 pages indexées · 14 domaines
API·Ka api-ka.com/api/stats 6 198 appels API / 7 jours

# Architecture

  • Next.js 16 (App Router, Turbopack) + React 19 + TypeScript 5 + Tailwind CSS 4 — pages et API dans src/app/ (20+ pages, 54 routes API).
  • SQLite (better-sqlite3, mode WAL) dans data/ — deux bases : ka-id.db (comptes, profils, favoris, feature store de personnalisation) et ka-comms.db (hub de communication : soumissions, courriels, équipe) ; zéro serveur de base de données.
  • jose pour les JWT/JWKS (sessions HS256 en témoin HttpOnly ka_session 30 jours ; vérification des id_token Google par JWKS ; client_secret Apple signé ES256 à la volée).
  • Resend pour les courriels : transactionnels KA ID (vérification, lien magique, 2FA, alertes) et boîtes du hub de communication (envoi + webhook entrant).
  • sharp (avatars), qrcode (carte de membre), pdfkit (rapports).
  • Bibliothèques internes : src/lib/ (auth.ts, sso.ts, db.ts, live.ts, ecostats.ts, status.ts, kaid-data.ts, personal.ts, alerts.ts, search.ts, rapports.ts, report-stats.ts, roles.ts, email.ts, comms/).

Processus PM2 sur le nœud (commandes de lancement réelles) :

Processus Rôle Cadence Commande
groupe-ka serveur Next.js de production continu next start -H 0.0.0.0 -p 8110
groupe-ka-ngrok tunnel public continu ngrok http --url=www.groupe-ka.com 8110
groupe-ka-status-tick tick de disponibilité → data/status/history.jsonl cron */5 * * * * scripts/status-tick.sh
groupe-ka-rapport-quotidien rapport quotidien (rédaction Claude + PDF) cron 0 6 * * * scripts/rapport-quotidien.sh
groupe-ka-kaid-alerts évaluation des alertes de recherches sauvegardées cron horaire /api/kaid/alerts/tick
groupe-ka-kaid-mf entraînement matrix factorization (recos) cron quotidien 03:12 scripts/kaid-mf.mjs

# Structure du repo

text
groupe-ka/
├── src/        # app/ (App Router : pages + API), ka/ (ka-ui vendoré + ecosystem.json), lib/ (auth, sso, db, live, personal…)
├── public/     # favicon, og.png, ka-agent.js (widget IA), doc/ (guide + captures), documents publics
├── assets/     # captures d'écran historiques
├── data/       # SQLite WAL (ka-id.db, ka-comms.db) + status/history.jsonl (90 jours) — gitignoré
├── scripts/    # status-tick.sh, rapport-quotidien.sh, kaid-mf.mjs (entraînement recos)
└── docs/       # captures d'écran du README (visite guidée, mobile/, desktop/, ecosysteme/, archive/)

# Démarrage rapide

bash
git clone gitsrv:groupe-ka.git && cd groupe-ka   # spbgit (alias SSH gitsrv)
npm install
# créer .env.local (voir « Variables d'environnement » ci-dessous)
npm run dev          # développement (Turbopack)
npm run build        # build de production
npm start            # sert le build
npm run lint         # eslint

Sans .env.local, le site tourne mais les connexions Google/Apple, le SSO, les courriels et la passe Wallet sont inactifs. Les bases SQLite (data/) se créent toutes seules au premier lancement.

# Variables d'environnement

Noms attendus dans .env.local (jamais de valeurs dans le repo) :

Groupe Variables
Base BASE_URL, KA_AUTH_SECRET, KA_DB_PATH, KA_COMMS_DB_PATH
Google OAuth GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
Sign in with Apple APPLE_CLIENT_ID, APPLE_TEAM_ID, APPLE_KEY_ID, APPLE_PRIVATE_KEY
Apple Wallet (carte de membre) KA_PASS_DIR, KA_PASS_TYPE_ID, KA_PASS_TEAM_ID
Courriels (Resend) RESEND_API_KEY, RESEND_READ_API_KEY, RESEND_FROM, RESEND_WEBHOOK_SECRET, KA_MAIL_DEBUG
KA Agent ANTHROPIC_API_KEY
Personnalisation & recherche KAID_TICK_KEY, TROUVEKA_SEARCH_URL
Secrets SSO (un par client) KA_SSO_SECRET_LOU_KA, KA_SSO_SECRET_IMMO_KA, KA_SSO_SECRET_HOUSE_KA, KA_SSO_SECRET_RENT_KA, KA_SSO_SECRET_VRAI_PRIX, KA_SSO_SECRET_AUTO_KA, KA_SSO_SECRET_FABRI_KA, KA_SSO_SECRET_FOOD_KA, KA_SSO_SECRET_RESTO_KA, KA_SSO_SECRET_SORTI_KA, KA_SSO_SECRET_CREA_KA, KA_SSO_SECRET_TROUVE_KA, KA_SSO_SECRET_API_KA, KA_SSO_SECRET_JOB_KA, KA_SSO_SECRET_KA_IOS, KA_SSO_SECRET_KA_ANDROID, KA_SSO_SECRET_ORA_KA, KA_SSO_SECRET_TOIT_KA, KA_SSO_SECRET_VALOPLEX

# Données & conformité

  • Provenance : les métriques affichées par le hub proviennent exclusivement des endpoints publics /api/stats (ou /api/status pour Trouve·Ka) des plateformes du groupe — aucune collecte externe.
  • Cadences : métriques live rafraîchies aux 10 min (cache serveur live.ts) ; disponibilité vérifiée aux 5 min (tick PM2 → historique 90 jours) ; rapport quotidien généré chaque matin à 6 h ; alertes membres évaluées à l'heure ; recos MF entraînées chaque nuit.
  • Données personnelles : les comptes KA ID (courriel, profil, favoris, interactions) vivent dans une SQLite locale au nœud (data/, gitignorée) — mots de passe hachés scrypt, sessions JWT HttpOnly 30 jours. Aucun tiers hors Resend (courriels transactionnels).
  • Le membre garde la main : /mon-ka offre 3 interrupteurs de consentement, la correction de « ce que KA a appris », l'effacement, la réinitialisation et l'export JSON de ses données (Loi 25).
  • Pages légales publiées sur le site : Conditions d'utilisation, Politique de confidentialité, Protection des renseignements personnels (Loi 25), Avis — notre rôle d'agrégateur, Transparence des robots d'indexation, plus le droit de retrait (/retrait).

# Documentation

  • Guide en ligne : www.groupe-ka.com/doc/ — à quoi sert le site, le parcours en 4 étapes (accueil → KA ID → /status → /stats), d'où viennent les données, FAQ.
  • Guide PDF : groupe-ka-documentation.pdf — la même documentation, téléchargeable.
  • Catalogue PDF « L'écosystème en images » — lié au footer du site.
  • Les captures du guide sont versionnées dans public/doc/img/ (etape1 → etape4).

# Historique

Jalons tirés du git log du repo :

  • 2026-08-17 — naissance du hub écosystème : métriques live (live.ts, ISR 10 min), page /status v2 (ticks 5 min, historique 90 j), tableau de bord maître /stats, widget KA Agent câblé partout, Job·Ka rejoint l'écosystème.
  • 2026-08-18 — page /telecharger (iOS TestFlight, APK Android signé + SHA-256, DMG macOS notarié) et client SSO ka-android.
  • 2026-08-19 — /stats maître v2 (KPI + sparklines, croissance indice 100, kit kacharts/kapdf) + KA Agent v2 plein écran + campagne mobile (tokens.css, overlay menu).
  • 2026-08-22 — SEO complet (canonical, JSON-LD Organization+WebSite, robots.txt, sitemap.xml) + KA Agent v3 (bulle déplaçable).
  • 2026-08-23 — rapports quotidiens automatisés (rédaction Claude + PDF), onglet /investisseurs (6 documents corporatifs), /recherche propulsée par Trouve·Ka, pages /agents et /marque, jeton API personnel kapi_, stats v3 (ReportBuilder).
  • 2026-08-24 — page documentation /doc (guide + captures + PDF téléchargeable) et README v3 (chiffres live vérifiés, pastilles dynamiques).
  • 2026-08-25 — accueil v2 « HQ » (recomposition éditoriale majeure), widget ka-agent v4 (ka-card/ka-choix), vitrine « L'écosystème en images » + catalogue PDF.
  • 2026-08-26 — KA ID v2 : courriels transactionnels Resend (vérification, lien magique, 2FA), moteur de personnalisation (feature store, /mon-ka, endpoints s2s HMAC), alertes actives (cron horaire), filtrage collaboratif + matrix factorization ALS (cron 03:12) ; hub de communication interne (console admin v2, boîtes courriel Resend, pièces jointes, gabarits signés).
  • 2026-08-27 — House·Ka et Rent·Ka rejoignent l'écosystème (clients KA ID, surfaces marketing, alerts, ka-agent) — le groupe s'étend au Canada hors Québec.
  • 2026-08-28 — banderole carrousel des marques sous le héros, House·Ka/Rent·Ka intégrés partout sur l'accueil, README v4 (visite guidée en 10 captures).

# Développement (remote-first)

La source de vérité est le repo git sur le nœud M3U96b (~/apps/groupe-ka) — on n'édite jamais les copies laptop. Toute modification se fait sur le nœud via SSH : édition, build, redémarrage, puis commit/push depuis le nœud.

  • Remote origin = spbgit (git perso git.spboucher.ai, bare repos sur M3U96a). Pas GitHub.
  • L'agent forwarding SSH est actif : le git push origin main fonctionne pendant une session SSH depuis le laptop.
bash
npm install
npm run dev          # développement
npm run build        # build de production
npm start            # sert le build
npm run lint         # eslint

pm2 restart groupe-ka   # après un changement en production

# Déploiement

  • Nœud : M3U96b (Mac Studio, cluster MacLustr) — répertoire ~/apps/groupe-ka
  • Port : 8110 (local, exposé uniquement via le tunnel)
  • Processus PM2 : groupe-ka (serveur Next.js) + groupe-ka-ngrok (tunnel) + groupe-ka-status-tick (ticks 5 min) + groupe-ka-rapport-quotidien (rapport 6 h) + groupe-ka-kaid-alerts (alertes, horaire) + groupe-ka-kaid-mf (recos, 03:12)
  • Domaine : https://www.groupe-ka.com (tunnel ngrok)
  • Healthcheck : GET /api/health → {"status":"ok","app":"groupe-ka"}

# L'écosystème en images

Un univers = un agrégateur automatisé. Captures du 2026-08-25, chiffres live du même jour.


Lou·Ka
· lou-ka.com
Logements à louer — 64 500+ annonces, 300+ sources, carte 3D, court terme

Lou·Ka

Immo·Ka
· immo-ka.com
Propriétés à vendre — 69 500+ inscriptions, jauge Vrai-Prix sur chaque fiche

Immo·Ka

Vrai-Prix
· vrai-prix.com
Estimation immobilière gratuite — 3,7 M d'unités, 745 000+ ventes réelles, fourchette P10–P90

Vrai-Prix

ValoPlex
· valoplex.com
Moteur d'évaluation spécialisé plex — 393 867 plex, 1 733 744 portes, 91 060 ventes

ValoPlex

Toit·Ka
· toit-ka.com
Louer OU acheter, un seul endroit — 136 000+ annonces (fusion Lou·Ka × Immo·Ka)

Toit·Ka

Trouve·Ka
· trouve-ka.com
Le moteur de recherche du Groupe KA — recherche sémantique sur 14 sites

Trouve·Ka

Auto·Ka
· auto-ka.com
Véhicules usagés — 46 600+ véhicules, KA Score, fiche VIN décodée

Auto·Ka

Fabri·Ka
· fabri-ka.com
Tous les produits québécois — 385 000+ produits, 1 500+ boutiques d'ici

Fabri·Ka

Food·Ka
· food-ka.com
Comparateur d'épicerie — 52 700+ produits, 57 bannières

Food·Ka

Resto·Ka
· resto-ka.com
21 200+ restaurants — menus complets et prix réels

Resto·Ka

Sorti·Ka
· sorti-ka.com
Sorties et événements — 22 900+ événements à venir, 404 villes, 17 régions

Sorti·Ka

Job·Ka
· job-ka.com
Offres d'emploi — 22 900+ postes, 1 000+ employeurs connectés en direct

Job·Ka

Créa·Ka
· crea-ka.com
Annuaire des créateurs québécois — 11 800+ créateurs, 13 plateformes suivies

Créa·Ka

Forma·Ka
· forma-ka.com
Toutes les formations du Québec — 4 900+ formations, 18 établissements

Forma·Ka

Ora·Ka
· ora-ka.com
Cherchez tout le Québec — une barre, 410 000+ inscriptions, 5 univers

Ora·Ka

Ka·Stats
· ka-stats.com
L'explorateur de statistiques du Québec — 227 métriques, 12 plateformes, Studio d'indicateurs

Ka·Stats

API·Ka
· api-ka.com
L'API centrale — base unifiée, KA Agent (33 outils) servi aux 13 domaines

API·Ka

KA Guardian
· ka2.bot · ka4.bot · ka6.bot
Les agents gardiens — détectent, réparent et publient tout en direct

KA Guardian

# Écosystème Groupe KA

Plateforme Vocation
groupe-ka.com portail du groupe et compte unique KA ID (ce repo)
lou-ka.com logements à louer (Québec)
immo-ka.com propriétés à vendre (Québec)
house-ka.com maisons à vendre (Canada hors Québec)
rent-ka.com loyers (Canada hors Québec)
vrai-prix.com estimation immobilière
valoplex.com évaluation spécialisée plex
toit-ka.com louer + acheter unifiés
auto-ka.com véhicules
fabri-ka.com produits québécois
food-ka.com épicerie et alimentation
resto-ka.com restaurants
sorti-ka.com sorties et événements
job-ka.com emplois
crea-ka.com créateurs de contenu
forma-ka.com formations
trouve-ka.com moteur de recherche
ora-ka.com méta-recherche 5 univers
ka-stats.com statistiques du Québec
api-ka.com API de données
ka2.bot · ka4.bot · ka6.bot agents gardiens autonomes

# Contact

Simon-Pierre Boucher — fondateur, Groupe KA 📧 contact@spboucher.ai


© Groupe KA — Simon-Pierre Boucher · contact@spboucher.ai Ce repo vit sur spbgit (git.spboucher.ai).