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
2 days agolast push
HTML 98.9% Python 0.6%

History of louka/auth.py · clear filter

  1. Thu, Aug 13, 2026 6

    1. Lou-Ka Maps — carte propulsée par Ka Maps (framework Groupe Ka, moteur Mapbox 3D)
      …
      Frontend : MapView réécrit sur @groupe-ka/ka-maps (file:../../ka-maps) —
      style Mapbox Standard 3D par défaut + bouton 2D, pastilles de prix encre/
      blanc, grappes compte + loyer moyen (clamp anti-prix aberrants),
      « Rechercher dans cette zone », aperçu React (fin du popup HTML injecté),
      sync liste↔carte (sélection + survol), caméra dans l'URL, badge Lou-Ka
      Maps · Groupe Ka, jeton public Mapbox (kamaps/config.ts). Recherche
      debouncée (fin des requêtes à chaque frappe).
      Backend : /api/listings.geojson accepte bbox + limit et renvoie
      totalGeocoded/totalMatching ; index idx_listings_geo(lat,lng) ; PRAGMA
      optimize au cycle d'ingestion (le planificateur choisissait le mauvais
      index).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher committed 1 mo ago · 1 file +54 −1
    2. Profil enrichi — photo téléversée, bio, ville, coordonnées, réseaux sociaux
      …
      - louka/profile.py : PUT /api/me/profile (nom affiché, bio 280, ville,
        téléphone, site web, réseaux instagram/facebook/x/linkedin/tiktok/youtube),
        POST /api/me/avatar (Pillow : EXIF, recadrage carré centré, 512 px, JPEG,
        purge des anciennes photos), DELETE /api/me/avatar (retour avatar Google)
      - /uploads/ monté (data/uploads/), colonnes users (display_name, avatar_url,
        bio, city, phone, website, socials JSON)
      - /api/me : nom et avatar « effectifs » (display_name > Google, upload >
        Google) + tous les champs ; profil public /u/{ka_id} : bio, ville, rôle,
        site, réseaux (jamais courriel/téléphone)
      - /profil : éditeur complet (photo avec téléversement, nom affiché, bio avec
        compteur, ville, téléphone, site, 6 réseaux avec icônes maison)
      - /u/{ka_id} : bio, chips ville/rôle/site, boutons réseaux sociaux
      - python-multipart ajouté (formulaires multipart FastAPI)
      Simon-Pierre Boucher committed 1 mo ago · 1 file +150 −6
    3. Comptes v2 — KA-ID, profil « carte de membre », rôles, favoris, pages gestionnaires
      …
      - KA-ID : identifiant membre unique « ka- » + 10 chiffres, attribué à la
        création du compte (index unique, backfill au premier /api/me)
      - /profil : carte de membre Groupe KA (encre + lime, KA-ID en vedette, avatar,
        ancienneté, bande décorative), infos du compte, copie du KA-ID
      - Profil PUBLIC opt-in : /u/{ka_id} (nom, avatar, ancienneté — jamais le
        courriel ; 404 indistinguable si non public), toggle + lien copiable
      - Rôles à l'intégration (/bienvenue après le premier login Google) :
        · locataire — favoris (cœur sur les cartes, page /favoris, toggle optimiste)
        · gestionnaire — réclame la page de SA source (1/compte, 1 compte/source)
          et la personnalise (/gestion : accroche, description, contact, logo) ;
          page publique /g/{source} avec inventaire relié + pagination
      - louka/accounts.py (rôles, favoris, source_profiles), tables favorites +
        source_profiles + colonnes users (ka_id, public, role, org_source)
      - Contexte de compte partagé (account.tsx) : header, cartes et pages reliés
      Simon-Pierre Boucher committed 1 mo ago · 1 file +75 −5
    4. Comptes utilisateurs — connexion Google (OAuth 2.0 / OpenID Connect)
      …
      - louka/auth.py : flux authorization-code serveur (login -> Google -> callback),
        state signé, upsert table users, session HMAC-SHA256 en cookie httpOnly 30 j
        (stdlib seulement), /api/me, /api/auth/logout, /api/auth/config
      - db.py : table users (google_sub unique, email, name, picture)
      - Frontend : bouton « Connexion » (logo Google) dans le header, avatar + menu
        compte (courriel, se déconnecter) — masqué tant que l'OAuth n'est pas configuré
      - .env : SESSION_SECRET généré ; GOOGLE_CLIENT_ID/SECRET à coller
        (redirect URI : https://www.lou-ka.com/api/auth/google/callback)
      Simon-Pierre Boucher committed 1 mo ago · 1 file +188