Agrégateur de produits québécois — www.fabri-ka.com
- 385commits
- 1branches
- 0releases
- 89.9 MBon disk
- maindefault branch
- 4 days agolast push
-
Mon, Sep 7, 2026 1
-
feat(fiche): refonte premium mobile-first de la fiche produit (2026-09-07)
…
Même socle que les fiches Lou-Ka v3 / Immo-Ka v3 (frontend/src/fiche/, préfixe fb-, tokens --fb-*, fond papier, cartes blanches bord 1 px, terracotta réservé aux CTA/prix ; masthead vert conservé en version compacte) : héro (boutique avec logo · lieu, prix + prix barré + fourchette, capsules origine A–E / solde / dispo / devise, titre + marque · catégorie · type, galerie contain sur blanc + lightbox, actions favoris / partage / Voir chez la boutique) ; « En bref » déterministe (classe d'origine, rabais, disponibilité et stock faible, note moyenne, déclinaisons, devise) ; navigation sticky ; « Prix et déclinaisons » (KPI, options en puces, déclinaisons 8 + Voir les N, note, méthodologie) ; « Le produit » (grille icône/valeur, fiche technique, description tronquée, infos additionnelles en accordéons, étiquettes) ; « La boutique » ; « Aussi chez la boutique » ; Dossier ; Sources. CTA sticky après le héro, aside desktop sticky, « Demander à Ka » via le widget KA Agent. Header compact sur /produits/<slug> (favoris + partage via fiche/current.ts, badge et recherche masqués). components/KaIcons.tsx (pictos partagés, distinct de Icons.tsx existant). Aucun order CSS ; pas de scrollIntoView à l'ouverture. Scripts QA : preview.mjs, check-order.mjs, shots.mjs, interactions.mjs. Validé sur M4M64a : tsc + vite build, check-order OK, interactions OK, captures 6 largeurs ; dist basculé, aucun changement API.
-
-
Fri, Aug 28, 2026 2
-
Revert "feat(portée Canada): Fabri-Ka devient l'agrégateur des boutiques canadiennes, plus seulement québécoises."
…
This reverts commit 8223706e162d2496adcf7f003306689e191a026b.
-
feat(portée Canada): Fabri-Ka devient l'agrégateur des boutiques canadiennes, plus seulement québécoises.
…
- schema.py : REGIONS = 17 régions administratives QC (granularité historique conservée, données existantes intactes) + 12 provinces/territoires (Ontario, C.-B., Alberta, …) — les pages /region/<province>, facettes et sitemaps s'activent automatiquement dès qu'une boutique hors-Québec a des produits (une listing vide reste 404 anti soft-404, comportement voulu). - scripts/verify.py : signaux de localisation élargis au Canada — codes postaux A–Y (plus seulement G/H/J), indicatifs téléphoniques de toutes les provinces + territoires, « made in Canada / canadian made / fièrement canadien », mentions Canada/provinces, TLD .ca (présence canadienne exigée par la CIRA). Les champs gardent leurs noms historiques qc_* (compat cache + registry). - scripts/build_registry.py : garde-fou localisation désormais pan-canadien (ca_signal), région dérivée du code postal hors-Québec via première lettre → province (X0A/X0B/X0C = Nunavut, X* = TNO), ALL_REGIONS étendu. - Frontend + SEO : tous les textes « produits québécois / boutiques québécoises / Fabriqué au Québec (classes A–E) » → canadiens ; REGIONS_ALL dans api.ts (slugs provinces) ; fallbacks de localisation 'Québec' → 'Canada' ; manifest, tagline ecosystem.json, README. Noms propres préservés (certifications Aliments du Québec / Les Produits du Québec, régions Nord-du-Québec / Centre-du-Québec, taglines des autres apps Ka). - Connecteurs plateforme inchangés (ils ne filtrent pas par région : le registre stores.json décide) — les prochaines vagues de découverte peuvent maintenant admettre des sources pan-canadiennes. Vérifié : build Vite OK, pm2 restart fabri-ka-web + fabri-ka-sync, healthcheck 200 local + www.fabri-ka.com (titre « Tous les produits canadiens »), /api/products?region=Ontario répond, régions QC existantes intactes (/region/monteregie 200). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
-
Wed, Aug 26, 2026 1
-
feat(ka-id v2): personnalisation Groupe KA — fabrika/kaid.py (canonique ka-ui.git/kaid), journal serveur (search/detail_view/favorite), reranking du tri par défaut « recent », routeur /api/kaid, SDK ka-id.js, badge « Recommandé pour vous » sur ProductCard
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Tue, Aug 25, 2026 4
-
KA Tabbar : sync canonique ka-ui (prop onClick sur les onglets-liens)
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Barre de navigation mobile commune Groupe KA (KA Tabbar v1)
…
La tab bar maison migre vers la pilule flottante du standard ka-ui/nav : Accueil · Produits · Boutiques · Recherche, thème sombre vert masthead, actif ambre, safe-area iOS. L overlay de recherche plein écran est conservé. Sur les fiches produit/boutique, le CTA sticky prend le bas (pilule effacée). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Major upgrade fabri-ka: connecteurs enrichis + refonte fiches produit/boutique
…
Backend — 6 connecteurs enrichis (details JSON par produit): - shopify: compare_at_price/image/requires_shipping par variante, sku, weight_grams, on_sale - woocommerce: on_sale, categories, variations + variants (attributs), fallback HTML enrichi (sku, notes, images, price_max) - wix: on_sale (V1 et V3) — fix 428 CATALOG_V1 intact - squarespace: parsing variantes réécrit (prix solde/barré, options agrégées, sku, stock par variante) - square: sku, review_count - generic (JSON-LD): brand, sku, gtin, aggregateRating, price_max, multi-images API /api/products: filtre on_sale=1 + tri discount, avec garde-fou rabais >90 % (prix barrés aberrants saisis en cents chez certains marchands, ex. okocreations.ca — 411 produits exclus) Frontend: - ProductDetail réécrit: lightbox plein écran (clavier, compteur), zoom, partage (Web Share/clipboard), étoiles de notation, badge −X %, notes de stock, options en chips, liste des déclinaisons (prix/barré/épuisé), fiche technique (SKU/GTIN/poids/dimensions), accordéons infos additionnelles, rail « Dans la catégorie » - StoreDetail: rail « En promotion », tri « Meilleures promos », stat prix moyen, réseaux sociaux étendus (TikTok/YouTube/Pinterest/LinkedIn/X + détection par domaine pour les socials en liste, ex. borealait.com qui n'affichait rien) - ProductCard: badge promo −X % + voile « Épuisé », prix barré masqué si aberrant - Icons: étoile, partage, chevrons, zoom, tiktok, youtube, pinterest, linkedin, X, globe - styles.css: ~400 lignes (badges, lightbox, variantes, specs, accordéons, rating) Validé: sync réel 6 boutiques (Shopify/Woo/Wix/Square/Generic) 0 erreur, test synthétique Squarespace OK, build tsc+vite OK, pm2 restart + healthchecks 8097 (promos assainies, fiches 200) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
-
-
Mon, Aug 24, 2026 6
-
Reapply "feat(doc): page documentation /doc (guide + captures) + lien footer + PDF téléchargeable"
…
This reverts commit 7a56edd46e367fc45ab9cdac112c58fb452d8787.
-
Revert "feat(doc): page documentation /doc (guide + captures) + lien footer + PDF téléchargeable"
…
This reverts commit 5e39101bd984675760af7ee8406ce13da043ea26.
-
Reapply "feat(doc): page documentation /doc (guide + captures) + lien footer + PDF téléchargeable"
…
This reverts commit 5e1cac24bce561a01122a01c79de83a11e9bce79.
-
Revert "feat(doc): page documentation /doc (guide + captures) + lien footer + PDF téléchargeable"
…
This reverts commit 5e39101bd984675760af7ee8406ce13da043ea26.
-
feat(doc): page documentation /doc (guide + captures) + lien footer + PDF téléchargeable
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Sun, Aug 23, 2026 1
-
Sat, Aug 22, 2026 1
-
Wed, Aug 19, 2026 5
-
Auto-inscription des artisans : page /inscrire (formulaire taxonomie, honeypot, 5 dépôts/24h/IP) -> POST /api/inscriptions en quarantaine pending, vue admin X-Admin-Token + décision approve/reject (approve = verify + fiche au registre, source auto_inscription), journal logs/inscriptions.log ; badges certifications + présumée fermée sur la fiche boutique ; /api/stores exclut les fermées par défaut
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Frontend : « Sur devis », prix dans la devise source, filtre « Fabricants seulement » (kind=fabricant), badges revendeur/collectif, coordonnées et livraison sur la fiche boutique
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
tokens.css : overflow-x clip aussi sur html (quirk WebKit iOS) ; immo-ka : zone tactile ka-signup portée à 45 px effectifs
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Stats v2 : dashboard ultra complet (9 KPI+sparklines, 5 jauges, multi-courbes, empilees, distributions, heatmap horaire, 5 tableaux, 10 records) + 5 rapports PDF (kapdf v2) + page /stats v2
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Mobile : dvh sur la colonne filtres, anti-zoom iOS 16 px, cible tactile du logo, grain reconcilie avec tokens
…
- styles.css : doublet 100vh/100dvh sur .filters (barre URL iOS) ; regles explicites >=16 px pour #header-search-input, .searchbar input et selects en contexte tactile ; extension tactile ::after du logo (98x29) ; suppression de la redefinition locale du grain body::before (z-index 0) au profit de celle du design system (ka/tokens.css, z-index 9999). - ka/tokens.css : section SOCLE MOBILE OBLIGATOIRE (echelle --z-*, --vh100, .ka-bottombar, verrou ka-scroll-lock, filet anti-zoom iOS). - public/ka-agent.js : agent KA corrige (safe-area, textarea 16 px, plein ecran auto <=640 px + verrou scroll). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Mon, Aug 17, 2026 4
-
Footer/contact : Job-Ka rejoint l écosystème (ecosystem.json 13 sites)
…
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Page /stats refaite : tableau de bord analytique ka-stats + rapport PDF Groupe-KA
…
- fabrika/statsdash.py : GET /api/stats/dashboard?period=… (contrat SPEC ka-stats) — KPI avec deltas reconstruits via first_seen, séries quotidiennes (nouveautés/jour, cumul), donut plateformes, top catégories, fourchettes de prix, géo par région, heatmap 26 semaines, tables (top boutiques, catégories), records ; cache 5 min. - fabrika/kapdf.py + GET /api/stats/report?period=&mode= : PDF GroupeKAReport (fpdf2, graphiques vectoriels), wordmark Fabri·Ka, accent #c4532e, modes complet/synthese, filename kapdf.filename. - frontend : /stats réécrite sur le kit ka/stats/kacharts.tsx (PdfButton, KPI, PeriodSelector avec plage personnalisée, LineChart/Donut/BarChart/Heatmap, DataTable, RecordCard, Fraicheur) — mobile 360/768/1440 sans débordement. - garde-fou : prix aberrants (> 500 000 $) exclus des moyennes et du record. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
En-tête tablette réparé, titre + OG/twitter, icônes et og.png servis à la racine
…
- Header : plus aucun chevauchement 768–1439 px (marque/nav en flex:none, nav compacte et recherche masquée 768–1023, recherche dès 1024, badge Groupe KA dès 1280, « Créer un compte » dès 1360) ; débordement horizontal de +139 px à 768 px ramené à 0 (validé 360/768/1024/1280/1440). - Titre SSR de l accueil suffixé « · Un service Groupe KA ». - ka-assets/ -> frontend/public/ (og.png, favicon.svg, apple-touch-icon.png) ; liens icônes + og:image absolu 1200x630 + twitter:card/image dans index.html et le head SSR (seo.py, sans doublons de balises). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Harmonisation Groupe KA (ka-ui) : tokens, badge, KaFooter, page /contact, SSO
…
- Vendorisation ka-ui (frontend/src/ka/) : tokens.css importé AVANT le CSS local ; :root réduit à l'accent TERRACOTTA (+ alias --lime/--lime-soft, --accent-dark → --accent-deep) et aux variables métier, socle dédupliqué, couleurs en dur remplacées par les tokens. - Header : badge « Un service Groupe KA » (GroupeKaBadge) à côté du logo ; bouton « Se connecter avec KA » + lien « Créer un compte » (hub /connexion). - Footer : remplacé par KaFooter (siteId fabri-ka) — contacts, sites de l'écosystème, mentions légales du hub ; dégagement de la barre mobile. - Page /contact : route SPA (ecosystem.json — 3 courriels + rôles, avertissement, lien hub, sites) + rendu serveur SEO (seo.py) + sitemap. - SEO : title « Fabri-Ka — Un service Groupe KA » (index.html). - SSO KA ID : FABRIKA_BASE_URL par défaut → https://www.fabri-ka.com (auth.py) — le redirect_uri vers le hub n'est plus localhost. - Tactile ≥ 44 px (bouton connexion, avatar) ; resolveJsonModule (tsconfig). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Sun, Aug 16, 2026 1
-
Thème famille KA « éditorial sharp » (aligné sur Food-Ka / Lou-Ka)
…
- Typo : Space Grotesk (display) + Inter (texte) + JetBrains Mono (prix, micro-étiquettes) — remplace Fraunces/Outfit - Signature famille : bordures encre, ombres décalées (boutons, cartes, recherche), chip « ·Ka » rotée dans le logo, grain de fond, kickers mono - Palette Fabri-Ka conservée (papier crème, terracotta, pin) + miel #F2CF63 en surlignage ; footer pin profond ; nav pilule à état actif pin/miel - Couche d'override en fin de styles.css (jetons partagés --line, --shadow-off, --highlight — mêmes rôles que Food-Ka/Lou-Ka) - Captures d'écran README refaites avec le nouveau thème Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Thu, Aug 13, 2026 1
-
SEO complet (SSR + sitemaps + 301/410) · KA ID SSO + favoris hub · README refait
…
- fabrika/seo.py : rendu serveur sur toutes les routes — title/meta/canonical/ hreflang fr-CA/OG/JSON-LD (Product, Offer, OnlineStore, BreadcrumbList, WebSite+SearchAction) + contenu HTML complet dans #root (hydraté par React) - Pages programmatiques /categorie/<slug>, /region/<slug> et combos (~350 pages) avec H1, stats (prix moyen/médian), grille produits, pagination, maillage - URLs produits slugées /produits/<slug>-<uid> (301 depuis l'ancien format), produits retirés → 410 Gone, uid inconnu → 404 (fini le soft-404) - robots.txt + sitemap.xml (index → pages/boutiques/produits-1..8, 40k/chunk, lastmod réel, cache 1h) ; GZip ; Cache-Control immutable sur /assets - Frontend : routes programmatiques miroirs (Catalog à dimensions verrouillées), liens slugés partout, setPageMeta (title/desc/canonical en navigation SPA) - fabrika/auth.py : « Se connecter avec KA ID » (SSO Groupe KA, JWT HS256 stdlib) - fabrika/hubfav.py + favorites.tsx : favoris « Mon univers Ka » poussés au hub central (HMAC signé), page /profil (hubprofile.py) - README ultra-détaillé : badges, nouvelles captures d'écran (desktop + mobile), section SEO/SSR, écosystème Groupe KA, structure du projet, API complète Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Wed, Aug 12, 2026 4
-
Rapport de marché PDF (téléchargeable) + page stats détaillée
…
- Générateur PDF reportlab : page couverture pleine page aux couleurs de la marque, KPIs, histogramme des prix, tableaux catégories/régions/plateformes, origine A–E, top boutiques, méthodologie — endpoint /api/report.pdf (cache) - Bouton 'Télécharger le rapport PDF' sur la page /stats (en-tête + pied) - Page /stats enrichie : rail Nouveautés, disponibilité, complétude des données, mini-barres dans le tableau catégories, % dans l'histogramme - Nettoyage : 51 prix corrompus (parsing) purgés → prix moyen 327k$ → 293,73$ - Caps défensifs sur les moyennes/max de prix (<= 500 000 $) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Enrichissement + pages boutiques landing + page statistiques
…
- 281 000+ produits, 1 204 boutiques actives (Bijoux Medusa incluse : 3 823 produits ; catégorie bijoux 10 410 → 31 673) - Enrichissement boutiques : logo, couverture, description (3 220/3 224) - Enrichissement produits : re-catégorisation + héritage de catégorie boutique - Pages boutiques refaites en landing pages : héro couverture + logo, tuiles de stats de prix, chips catégories, recherche in-store, boutiques similaires - Nouvelle page /stats (à la lou-ka/auto-ka) : KPIs, histogramme des prix, tableau par catégorie, régions, croissance, origine A–E, top boutiques - API : /api/stats/extended (cache 10 min), fiche boutique enrichie Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Expansion majeure : 149 500+ produits, 3 131 boutiques, 17/17 régions
…
- Fallback anti-bot Scrapfly (530 candidats « morts » ressuscités, 233 boutiques en échec débloquées) + connecteur Wix Stores (GraphQL storefront) - Répertoire CMAQ récolté via sessions Firecrawl (940 artisans) - Refonte frontend mobile-first : bottom nav, filtres en bottom sheet, galeries swipe, design éditorial resserré - Géocodage FSA→région (répertoire MAMH), 4 nouveaux balayages (urbain, manufacturiers, régions minces, marques), producteurs Saveurs BSL + Goûtez AT Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
Fabri-Ka — agrégateur de produits québécois
…
Plateforme complète : pipeline de découverte provincial (30+ sources, 2 510 boutiques QC vérifiées, classification d'origine A–E), connecteurs génériques par plateforme (Shopify, WooCommerce, Wix, Squarespace, Firecrawl), API FastAPI + SQLite FTS5, frontend React 18/Vite/TS, 75 735 produits agrégés — en production sur www.fabri-ka.com. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-