Skip to content

Repository files navigation

Indice UV

Indice UV géolocalisé, statique, hors-ligne. Aucun backend, aucune clé API.

  • Données : Open-Meteo — gratuit, sans clé, licence CC-BY, couverture mondiale (Vietnam, Cambodge et le reste inclus).
  • Géolocalisation du navigateur, avec repli sur une recherche de ville (géocodage Open-Meteo) si la position est refusée.
  • Prévisions préchargées sur 3 jours + courbe horaire du jour, mises en cache pour l'usage hors-ligne. Le cache est rafraîchi à chaque ouverture.
  • Échelle pédagogique OMS (celle de Météo-France) : 5 niveaux, couleurs et recommandations de protection.
  • PWA installable, fonctionne hors-ligne.
  • L'état (lieu) est encodé dans le hash de l'URL : #48.85,2.35,Paris. Chaque lieu = un marque-page.

Bookmarks

Chaque lieu = une URL, par exemple :

  • …/indice-uv/#21.03,105.85,Hanoï
  • …/indice-uv/#13.36,103.86,Siem Reap
  • …/indice-uv/#11.56,104.92,Phnom Penh

L'app met le hash à jour toute seule quand on change de lieu — il suffit de re-bookmarker pour figer une nouvelle position. Sans hash, elle reprend le dernier lieu connu, sinon demande la géolocalisation.

Données

  • Indice UV courant, maximum du jour, horaire, et maximum des 3 jours suivants, via l'endpoint forecast d'Open-Meteo (current, hourly, daily=uv_index_max, timezone=auto, forecast_days=4).
  • Le fuseau horaire du lieu observé est fourni par l'API : « maintenant » et le pic du jour sont calculés à l'heure locale du lieu, pas à celle de l'appareil.

Échelle UV

Échelle mondiale de l'OMS, reprise par Météo-France :

  • 0-2 Faible (vert) — pas de protection nécessaire.
  • 3-5 Modéré (jaune) — chapeau, lunettes, crème SPF 30, ombre à midi.
  • 6-7 Élevé (orange) — SPF 30-50+, éviter le soleil 11h-17h.
  • 8-10 Très élevé (rouge) — SPF 50+, vêtements couvrants, éviter le soleil 11h-17h.
  • 11+ Extrême (violet) — éviter toute exposition, protection maximale.

Déploiement sur GitHub Pages

Le dépôt se déploie tout seul sur GitHub Pages depuis main (Settings → Pages → Deploy from a branch → main / (root)). Chaque push sur main redéploie.

L'URL est : https://<pseudo>.github.io/indice-uv/

Les chemins sont relatifs (sw.js, manifest.json, start_url: "."), donc l'app fonctionne dans le sous-dossier /indice-uv/. Ne les passe pas en absolus (/sw.js) sinon la PWA casse.

Structure

indice-uv/
├── index.html      app + logique (géoloc, fetch, rendu, courbe, échelle)
├── manifest.json   PWA
├── sw.js           service worker (offline)
├── icons/          icônes PWA (soleil)
├── scripts/        icône source (SVG) + serveur statique de test
└── tests/          suite Playwright

Tests

npm install
npm test

Données indicatives (modèle météo). À ne pas utiliser comme mesure médicale.

Licence

Code sous licence MIT. Données Open-Meteo sous licence CC-BY 4.0.

About

Indice UV géolocalisé, hors-ligne, avec prévisions 3 jours et échelle de protection (PWA statique, Open-Meteo)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages