SPB Git forge

spb/lou-ka

Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

232commits 1branches 0releases
172.9 MBsize
maindefault branch
3 days agolast push
HTML 98.9% Python 0.6%

History of frontend/src/search/MapSearch.tsx · clear filter

  1. Wed, Aug 26, 2026 1

    1. Mode carte Ka Map System v2 — expérience immersive plein viewport
      …
      - MapSearch réécrit autour de KaMapShell : mobile edge-to-edge + bottom sheet
        de résultats à 3 crans, desktop split liste|carte redimensionnable (ratio
        persisté) avec carte quasi plein écran d un clic
      - Toolbar unifiée (zoom, 3D, dessiner, me localiser) au lieu des pilules
        flottantes ; « Rechercher dans cette zone » contextuel
      - Mode dessin temporaire avec CTA « N logements dans cette zone »
      - Fiche contextuelle v2 : photo, prix, favori, swipe/chevrons entre voisines
        (remplace le carrousel mobile)
      - Thème markers v2 : pilules off-white/encre premium, orange réservé au
        « sous le marché » et à la sélection ; clusters légers à anneau orange
        avec loyer moyen sous la bulle
      - Home : vue carte mémorisée dans l URL, feuille de filtres en modale
        au-dessus du mode carte (desktop), widget Ka Agent masqué en mode carte
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +314 −337
  2. Sun, Aug 23, 2026 1

    1. Cartes : lignes de métro/REM aux couleurs officielles + transit hors ligne
      …
      - MetroLignes.tsx : couche Ka Maps (useKaMap) qui trace metro-lignes.geojson
        (lignes verte/orange/jaune/bleue + REM, extraites d OSM avec leurs couleurs
        officielles, liseré blanc de lisibilité) sur la carte de recherche, la
        vue carte et la carte 3D de la fiche
      - commerces : transit servi par data/transit.db (extrait OSM pré-calculé,
        37 237 arrêts de bus + 75 stations de métro + 57 REM + 106 gares au
        Québec — les miroirs Overpass refusent l IP du cluster) ; ajoute Station
        REM et Gare de train au bloc Commerces et transport
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +2
  3. Sat, Aug 22, 2026 1

    1. Simon-Pierre Boucher committed 1 mo ago · 1 file +4 −4
  4. Tue, Aug 18, 2026 2

    1. KA Scores — suite géographique maison (Walk/Transit/Bike/Calme/Services)
      …
      · environment.py : inventaire OSM par tuile (Overpass) — routes majeures,
        rails, aéroports, zones industrielles, bars, pistes cyclables (géométrie
        densifiée) et TOUS les POI par catégorie ; cache env_tiles ~3 mois.
      · kascores.py : 5 scores 0-100 par immeuble + global pondéré, barème
        versionné (2026.08-v1), détails honnêtes par score, « Données
        insuffisantes »/« Non desservi » plutôt que des 0 trompeurs ; Transit =
        proximité des arrêts × percentile PMD StatCan ; calcul incrémental
        (7 900 immeubles en ~8 s), distribution de calibration en sortie.
      · API : ks_* joints à /api/listings et /api/search (tri « ka », filtre
        kascore_min), détail complet sur la fiche, /api/kascores/stats.
      · Frontend : pastille KA sur les cartes d annonces, section KA Scores de
        la fiche (5 jauges + détail dépliable + date/version), page /ka-scores
        (méthodologie publique + pondérations personnelles en curseurs), tri
        « Meilleur KA Score » dans la vue carte, filtre « KA Score minimal ».
      · Boucle watch : env (4 tuiles max) + kascores incrémental à chaque sync.
      · Tests : test_kascores.py (barème, honnêteté, rendement décroissant,
        cohérence spatiale sur le parc réel).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +1
    2. Recherche synchronisée liste ↔ carte (une seule vérité partagée)
      …
      · /api/search : une réponse = page de liste + tous les points carte,
        même tri — compteur liste = marqueurs par construction ; bbox, polygone
        dessiné, tris (prix/récent/affaires), include=liste, annonces sans
        position comptées honnêtement.
      · MapSearch.tsx : état unique filtres+zone+tri+page, miroirs survol/clic
        < 100 ms dans les deux sens, page ajustée au clic marqueur + pulsation,
        « Rechercher quand je déplace la carte », « Rechercher dans cette zone »,
        recadrage animé respectant l intention (byUser), « Recadrer sur les
        résultats », zone dessinée en puce retirable + URL, carrousel mobile
        synchronisé aux marqueurs, états vides propres, URL complète partageable.
      · Géolocalisation d accueil : arrivée sur le site → demande de position →
        vue carte centrée sur l utilisateur (une fois par session, lien partagé
        respecté, refus silencieux).
      · Marqueurs « déjà vu » atténués (localStorage), fourchette de prix des
        clusters au survol, spiderfy discret des unités d un même immeuble.
      · Tests : scripts/test-sync.mjs (25 vérifications E2E Playwright, critères
        1-9), tests/test_search.py (9 tests API).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +862