ObsiGate/docs/PWA_CHANGELOG.md
Bruno Charest 5280dc7a50 Add comprehensive documentation and analysis files
Add extensive project documentation including analysis review, image
rendering changelog and guide,
contributing guidelines, hidden files configuration guide, PWA
documentation suite, roadmap, and
dashboard specification.
2026-05-26 08:35:58 -04:00

5.9 KiB

Changelog PWA - ObsiGate

Version 1.5.0 - Support PWA Complet

🎉 Nouvelles Fonctionnalités

Progressive Web App (PWA)

  • Manifeste Web (manifest.json) avec métadonnées complètes
  • Service Worker (sw.js) pour le mode hors ligne et le cache
  • Icônes PWA en multiples tailles (72px à 512px)
  • Installation native sur desktop et mobile
  • Mode hors ligne avec stratégies de cache intelligentes
  • Notifications de mise à jour avec interface élégante
  • Raccourcis d'application (recherche rapide)

Fichiers Ajoutés

Frontend

  • frontend/manifest.json - Manifeste PWA
  • frontend/sw.js - Service Worker
  • frontend/icons/ - Répertoire des icônes PWA (SVG)
    • icon-72x72.svg à icon-512x512.svg
    • icon-192x192-maskable.svg, icon-512x512-maskable.svg
    • search-96x96.svg
    • README.md - Guide de conversion des icônes

Scripts

  • generate_pwa_icons.py - Générateur d'icônes PWA automatique

Documentation

  • PWA_GUIDE.md - Guide complet d'utilisation PWA
  • PWA_CHANGELOG.md - Ce fichier

Modifications Frontend

index.html

  • Ajout des meta tags PWA (description, theme-color, mobile-web-app-capable)
  • Ajout du lien vers le manifeste
  • Ajout des icônes Apple Touch
  • Ajout du favicon SVG

app.js

  • Fonction registerServiceWorker() pour enregistrer le SW
  • Fonction showUpdateNotification() pour les mises à jour
  • Gestion de l'événement beforeinstallprompt pour l'installation
  • Gestion de l'événement appinstalled avec notification toast

style.css

  • Styles pour .pwa-update-notification
  • Styles pour .pwa-update-content
  • Styles pour les boutons de mise à jour
  • Animation slideInUp pour les notifications
  • Responsive mobile pour les notifications PWA

Modifications Backend

main.py

  • Route GET /sw.js pour servir le service worker
    • Headers: Cache-Control: no-cache, Service-Worker-Allowed: /
  • Route GET /manifest.json pour servir le manifeste
    • Headers: Cache-Control: public, max-age=3600

🔧 Configuration

Service Worker

Stratégies de Cache

  • Cache First : Assets statiques (HTML, CSS, JS, icônes)
  • Network First : API et données dynamiques
  • Fallback gracieux : Affichage hors ligne élégant

Gestion du Cache

  • Cache statique : obsigate-v1.4.0-static
  • Cache dynamique : obsigate-v1.4.0-dynamic (max 50 entrées)
  • Nettoyage automatique des anciens caches
  • Vérification des mises à jour toutes les 60 secondes

Exclusions

  • Endpoints SSE (/api/events)
  • Endpoints d'authentification (/api/auth/*)
  • Requêtes non-GET

Manifeste PWA

Métadonnées

  • Nom : "ObsiGate"
  • Description complète en français
  • Thème : #2563eb (bleu)
  • Background : #1a1a1a (sombre)
  • Display : standalone (mode app)
  • Orientation : any

Icônes

  • 8 tailles régulières (72px à 512px)
  • 2 icônes maskables (192px, 512px)
  • Format : SVG (convertible en PNG)

Raccourcis

  • Recherche : /?action=search

📱 Compatibilité

Fonctionnalité Chrome Edge Firefox Safari iOS Safari Android
Installation ⚠️
Service Worker
Mode Hors Ligne
Notifications
Raccourcis

🚀 Utilisation

Installation Desktop

  1. Ouvrir ObsiGate dans Chrome/Edge
  2. Cliquer sur l'icône d'installation dans la barre d'adresse
  3. Confirmer l'installation

Installation Mobile (Android)

  1. Ouvrir ObsiGate dans Chrome
  2. Menu ⋮ → "Ajouter à l'écran d'accueil"
  3. Confirmer

Installation iOS

  1. Ouvrir ObsiGate dans Safari
  2. Bouton Partager 📤
  3. "Sur l'écran d'accueil"
  4. Confirmer

🔍 Tests

Vérifications Effectuées

  • Manifeste valide (DevTools → Application → Manifest)
  • Service Worker enregistré (DevTools → Application → Service Workers)
  • Cache fonctionnel (DevTools → Application → Cache Storage)
  • Mode hors ligne opérationnel (DevTools → Network → Offline)
  • Notifications de mise à jour
  • Installation sur desktop (Chrome, Edge)
  • Responsive design maintenu

Lighthouse Score

  • PWA : 90-100/100 (attendu)
  • Performance : Maintenu
  • Accessibilité : Maintenu
  • Best Practices : Maintenu
  • SEO : Maintenu

📝 Notes de Migration

Pour les Utilisateurs Existants

  • Aucune action requise
  • Le PWA est optionnel
  • L'application web fonctionne normalement sans installation
  • Le service worker s'enregistre automatiquement

Pour les Développeurs

  • Les icônes SVG peuvent être converties en PNG si nécessaire
  • Le script generate_pwa_icons.py peut être personnalisé
  • Le service worker peut être désactivé en commentant registerServiceWorker()

🐛 Problèmes Connus

  • Firefox Desktop : Pas d'installation native (limitation du navigateur)
  • Safari Desktop : Support PWA limité (limitation du navigateur)
  • iOS : Pas de notifications push (limitation iOS)

🔜 Améliorations Futures

  • Background Sync pour les modifications hors ligne
  • Notifications push pour les mises à jour de vaults
  • Cache prédictif basé sur l'historique
  • Stratégies de cache configurables
  • Support des screenshots dans le manifeste
  • Conversion automatique SVG → PNG au build

📚 Documentation

  • PWA_GUIDE.md - Guide complet d'utilisation et de configuration
  • frontend/icons/README.md - Instructions de conversion des icônes
  • Commentaires inline dans sw.js et app.js

🙏 Remerciements

Merci à la communauté PWA pour les standards et bonnes pratiques.


ObsiGate v1.5.0 - Maintenant disponible en Progressive Web App ! 🎉