SPB Git

spb/job-ka

Public
History of frontend Clear filter
page 1
  1. Wed, Aug 19, 2026 5

    1. Simon-Pierre Boucher · 1 file +4 −1
    2. Stats v2 : dashboard ultra complet + 5 rapports PDF (module commun ka-ui v2)
      …
      - jobka/kapdf.py + frontend/src/ka/stats/{kacharts.tsx,SPEC.md} : canoniques v2
      - statsdash.py : 10 KPI (sparklines actives/nouvelles/retraits), 4 jauges de
        complétude (salaire, mode, géoloc, catégorie), série des retraits,
        multi-courbes top secteurs (date de publication affichée), barres empilées
        ajouts par source (sync_log), 3 distributions (salaires annuels, taux
        horaires, âge des offres), heatmap horaire 7x24 des observations, tableaux
        secteurs + sources & connecteurs, 11 records ; deltas seulement si la
        période précédente est couverte (rien d'inventé)
      - /api/stats/report : 5 modes (complet/synthese/tendances/repartitions/
        donnees), mode inconnu -> complet, filename(..., mode)
      - Stats.tsx : sections v2 dans l'ordre du SPEC (jauges, StatSummary,
        MultiLineChart, StackedBarChart, Histogram, HourHeatmap, PdfButton 5 modes)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 3 files +583 −115
    3. Correctifs front-end mobile : menu hamburger, carte calee sur la vraie hauteur du header, viewport-fit=cover, socle mobile ka-ui
      …
      - App.tsx : menu mobile hamburger sous 700px (bouton 44x44 aria-expanded, panneau deroulant sous le header, backdrop fixe HORS du header, verrou de scroll body + cleanup, fermeture route/Escape/backdrop) ; ResizeObserver sur header.site qui pose --header-h sur <html>
      - styles.css : .map-wrap = calc(100vh/100dvh - var(--header-h,58px)) (fini le saut de barre navigateur et le 58px faux sur header 2 lignes) ; styles .menu-btn/.mobile-menu/.mm-backdrop avec var(--z-modal)/var(--z-overlay) ; header.site a var(--z-header) ; champs filtres a 16px sous 700px (anti-zoom iOS) ; extension tactile ::after -8px sur a.logo
      - index.html : meta viewport avec viewport-fit=cover (safe-area iOS)
      - src/ka/tokens.css : section SOCLE MOBILE OBLIGATOIRE (z-index unifies, --vh100 dvh, verrous de scroll, filet anti-zoom 16px, extension tactile gk-badge)
      - public/ka-agent.js : agent corrige (safe-area, textarea 16px, plein ecran <=640px + verrou scroll)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +259 −19
  2. Tue, Aug 18, 2026 1

    1. Badge « Offre directe » + stats directes/portails + canal de dépôt direct employeurs
      …
      - is_direct (source hors AGGREGATORS) exposé sur /api/jobs, /api/jobs/{uid}
        et jobs.geojson ; badge sobre sur les cartes d offres (frontend rebuild)
      - /api/stats : direct_jobs, direct_employers, direct_sources, portal_jobs,
        duplicates_hidden ; KPI « Offres directes employeur » au tableau de bord
      - POST /api/employeurs/offres : dépôt direct validé (pydantic + pot de miel),
        normalisé par JobPosting.finalize(), stocké source=depot-direct INACTIF en
        attente de modération ; page /employeurs (formulaire + explications)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +196
  3. Mon, Aug 17, 2026 2

    1. Intégration complète à l'écosystème Groupe KA
      …
      - Design : ka-ui vendoré (tokens.css importé avant le CSS local), accent
        officiel cyan #0c8599 (fin du lime hérité), socle dédupliqué, badge
        « Un service Groupe KA » au header (desktop + mobile, zéro débordement
        à 360/768/1440), prefooter local + KaFooter commun, page /contact
        (ecosystem.json), title « Job-Ka — Un service Groupe KA », assets
        og.png/favicon.svg/apple-touch-icon + meta OG/Twitter absolues.
      - SSO KA ID : jobka/auth.py (client job-ka, cookie jobka_session, table
        users), bouton « Se connecter avec KA » au header, testé bout-en-bout
        jusqu'au hub (307 → /connexion, client reconnu).
      - Stats : /api/stats/dashboard (contrat SPEC, cache 5 min, salaires
        bornés 25–400 k$, série date_posted réelle) + /api/stats/report (PDF
        fpdf2 via jobka/kapdf.py, complet + synthèse), page /stats refaite sur
        ka/stats/kacharts.tsx ; /api/stats historique conservé pour le hub.
      - KA Agent : widget ka-agent.js câblé (site job-ka).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 18 files +2,265 −129
    2. Fondation Job·Ka : socle backend, 5 connecteurs pilotes, frontend, tests
      …
      - Schéma JobPosting + normalisation (salaires $/h↔$/an, dates ISO, villes
        canoniques, catégories) — 25 tests unitaires
      - Pipeline hérité de Lou·Ka : diff par content_hash, délai de grâce,
        anti-dérive, expiration sur date limite, dédup union-find, géocodage
        Nominatim + Adresses Québec avec cache
      - Plateformes ATS : Workday (facette Québec auto-découverte), Lever,
        Greenhouse, SmartRecruiters — connecteurs pilotes CAE, Desjardins, Poka,
        Mistplay, Ubisoft (442 offres QC)
      - API FastAPI (/api/jobs, geojson, facets, sources, stats, /health) +
        frontend React/Vite (liste, fiche, carte MapLibre, stats)
      - Fixtures HTTP enregistrées/rejouées hors ligne + hook pre-commit
        d'en-tête d'auteur (section 17)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 15 files +3,201
Menu

Theme