v1.6.1
Couloir lacustre est complet — codes postaux manquants
30.04.2026
- Ajout de Gy (1251) — score localisation 1 (~11 km rive lacustre)
- Ajout codes postaux manquants : 1246 (Corsier), 1247 (Anières), 1248 (Hermance)
- Zone couverte : Eaux-Vives → Cologny → Vandœuvres → Collonge → Hermance
v1.6.0
Bot Telegram enrichi — 9 features
30.04.2026
- Boutons inline ❤️ Favori / 🚫 Skip sur chaque notif d'annonce
- Favoris persistants en base — /favoris liste tes annonces sauvegardées
- Notification retirée — édite le message Telegram quand une annonce disparaît
- /new — dernières annonces 24h à la demande
- /prix — prix médian au m² calculé sur les annonces actives
- /pause / /resume — suspendre / reprendre les alertes immédiates
- Clavier persistant Telegram affiché sous la zone de texte
- Rapport hebdomadaire enrichi — photo du top de la semaine en tête
- /alerte [pièces] — filtre budget sur les notifications immédiates
v1.5.9
Refonte Accueil — Apple design
21.04.2026
- Page Accueil entièrement redessinée : Apple design system (SF Pro, dark glass nav)
- Fusion Accueil + Stats : hero KPIs, scores, sources, prix/m², tendances, top annonces
- Navigation simplifiée à 2 onglets : Accueil et Annonces
- Navbar Apple dark glass (rgba 0,0,0,.8 + blur) sur toutes les pages
- Suppression des pages FAO, Achat, Stats de la navigation
v1.5.8
Alignement navbar & compteur unifié
21.04.2026
- Navbar : min-width fixe sur nav-meta — tabs centrés au pixel près sur toutes les pages
- Compteur d'annonces identique sur Accueil et Location (même filtre SQL)
- Heure seule dans la nav-meta (plus de date longue qui décalait les tabs)
- Suppression des overrides .nav-meta isolés sur FAO et Achat
v1.5.7
Design unifié sur toutes les pages
21.04.2026
- style.py — source de vérité unique : AIRBNB_CSS_VARS + AIRBNB_NAV_CSS partagés
- Navbar identique sur les 5 pages : logo Rausch, tab active noir, tabs centrés
- Tri par défaut : Récent (date décroissante) sur la page Location
v1.5.6
Redesign Airbnb + Vue Carte Split
21.04.2026
- Design system Airbnb — Inter, tokens --rausch/#ff385c, --ink/#222222, --cloud/#f7f7f7
- Cartes redessinées : ratio photo 4:3, score dot coloré, sans ombre, sans shadow
- Filtres simplifiés : segmented control avec dot + compteur (Top/Bien/Moyen)
- Vue Carte split-screen : map à droite, listing à gauche, style Airbnb
- Suppression des badges Notifié, tags mots-clés, barre de stats — interface épurée
v1.5.5
Prix au m² par commune
21.04.2026
- Nouveau graphique Stats : prix médian au m² par commune (CHF/mois·m²)
- Dégradé couleur vert → orange → rouge selon le niveau de prix relatif
- Filtré sur communes avec ≥ 2 annonces, top 16 triés du moins au plus cher
v1.5.4
Telegram enrichi & Mémos
20.04.2026
- Telegram : photo + caption score + boutons inline (Voir annonce / Dashboard)
- Fallback texte automatique si la photo ne peut pas être envoyée
- Mémo personnel par annonce — icône crayon, modal iOS, localStorage
- Aperçu de la note visible directement sous chaque carte
v1.5.3
Carte Leaflet
20.04.2026
- Bouton Carte dans la barre de filtres — vue carte / grille en un clic
- Pins colorés par score : vert (Top), orange (Bien), rouge (Moyen)
- Geocoding de 50+ communes genevoises depuis data-loc des cartes
- Popup au clic : prix, localisation, titre, lien direct vers l'annonce
- Synchronisation carte ↔ filtres : les pins se mettent à jour en temps réel
v1.5.2
Auth unifiée
20.04.2026
- Portail de connexion iOS partagé entre toutes les pages (auth_gate.py)
- localStorage : une seule authentification valide pour tous les onglets
- Suppression du re-login nginx entre les pages sur iOS Safari
- deploy.sh régénère automatiquement tous les dashboards avant déploiement
- Mot de passe configurable dans config.py (DASHBOARD_PASSWORD)
v1.5.1
Tri, Scroll, Score & PWA
20.04.2026
- Tri par surface (↓) dans la barre de filtres
- Infinite scroll — chargement par lots de 24 (IntersectionObserver)
- Score tooltip — clic sur le badge score explique les critères
- Export CSV — télécharge la sélection filtrée courante
- PWA — manifest.json + service worker, installable iPhone (Safari)
- Statut Retiré — badge rouge sur annonces disparues du site
v1.5
Photos partout
20.04.2026
- Photos extraites pour APPT.ch, MoserVernet, SPG, LIVIT, Comptoir Immobilier
- Photos sur fiches détail : Cogerim (galerie realforce), Gerofinance (1600px)
- Backfill DB : patch image_url NULL sur toutes les annonces actives existantes
- database.py : mise à jour image_url automatique à chaque run
v1.4
iOS Redesign
19.04.2026
- Refonte complète Apple iOS — SF Pro, couleurs système, cartes blanches
- Navigation simplifiée : focus Location (suppression onglets FAO & Achat)
- Barre de navigation frosted-glass et bottom tabs mobile
- Photos avec placeholder dégradé par source
- Animations spring iOS sur toutes les cartes
- Widget version avec historique des mises à jour (cette fenêtre)
v1.3
Scrapers & Photos
12.04.2026
- Migration Scrapling v0.3 — API .css().first
- Scraper LIVIT avec requests + BeautifulSoup (SSR Drupal)
- Extraction photos : Naef, Grange, Immobilier.ch, SPG, APPT.ch
- Amélioration du score : bonus communes favorites (Cologny, Vésenaz…)
v1.2
FAO & Achat
28.03.2026
- Page FAO : permis de construire LDTR Genève
- Page Achat : biens à la vente (villas, PPE, sur plans)
- Filtres par score et type de bien
- Notifications Telegram pour nouvelles alertes
v1.1
Stats & Analytics
15.03.2026
- Page Stats : KPIs, donut chart, timeline, mots-clés fréquents
- Système de score 1–4 avec pondération multi-critères
- Historique des annonces vues en base
v1.0
Lancement
01.03.2026
- Dashboard location initial
- Scrapers : Naef, Grange, Immobilier.ch, Comptoir, MoserVernet
- Base de données SQLite avec déduplication par identifiant
- Génération HTML automatique via main.py