Add initial project
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
# Amélioration des Widgets Weight et BMI
|
||||
|
||||
## 📋 Résumé des Modifications
|
||||
|
||||
J'ai transformé les widgets Weight et BMI simples en widgets interactifs premium avec jauges semi-circulaires colorées, inspirés de l'image de référence fournie.
|
||||
|
||||
## ✨ Nouvelles Fonctionnalités
|
||||
|
||||
### 1. **Widgets Améliorés avec Jauges Semi-Circulaires**
|
||||
|
||||
#### Widget Weight (Poids)
|
||||
- **Jauge semi-circulaire animée** avec gradient de couleurs (cyan → bleu → vert → ambre → rouge)
|
||||
- Affichage en **livres (lbs)** avec conversion automatique
|
||||
- **Statut dynamique** : BALANCED, UNDERWEIGHT, OVERWEIGHT, OBESE
|
||||
- Design sombre premium avec effet hover
|
||||
- **Cliquable** pour ouvrir la page de détails
|
||||
|
||||
#### Widget BMI
|
||||
- **Jauge semi-circulaire animée** avec gradient de couleurs adapté au BMI
|
||||
- Affichage de la valeur BMI avec précision
|
||||
- **Statut dynamique** : NORMAL, UNDERWEIGHT, OVERWEIGHT, OBESE
|
||||
- Design sombre premium avec effet hover
|
||||
- **Cliquable** pour ouvrir la page de détails
|
||||
|
||||
### 2. **Page de Détails Modale**
|
||||
|
||||
Une modale complète s'ouvre en cliquant sur les widgets, offrant :
|
||||
|
||||
#### Navigation par Plage Temporelle
|
||||
- **Recent** : 7 derniers jours
|
||||
- **Week** : 7 derniers jours
|
||||
- **Month** : 30 derniers jours
|
||||
- **Year** : 365 derniers jours
|
||||
|
||||
#### Contenu de la Modale
|
||||
|
||||
**Pour Weight (Poids)** :
|
||||
- Valeur actuelle en grand format
|
||||
- Date et heure de la dernière mesure
|
||||
- **Graphique d'historique** interactif avec Chart.js
|
||||
- **Statistiques résumées** : Moyenne, Maximum, Minimum
|
||||
- **Tendances** : Progression et comparaison avec dates antérieures
|
||||
- Bouton "History data" pour export futur
|
||||
- Bouton "Add Entry" pour saisie manuelle future
|
||||
|
||||
**Pour BMI** :
|
||||
- Valeur actuelle en grand format
|
||||
- Date et heure de la dernière mesure
|
||||
- **Graphique d'historique** interactif
|
||||
- **Statistiques résumées** : Moyenne, Maximum, Minimum
|
||||
- **Informations BMI** : Formule, explications, poids idéal
|
||||
- Bouton "History data" pour export futur
|
||||
- Bouton "Add Entry" pour saisie manuelle future
|
||||
|
||||
## 🎨 Design
|
||||
|
||||
### Style Visuel
|
||||
- **Fond sombre** : Gradient de gris-800 à gris-900/noir
|
||||
- **Jauges colorées** : Gradients multi-couleurs avec indicateur triangulaire blanc
|
||||
- **Typographie** : Texte blanc en gras, labels en gris clair
|
||||
- **Animations** : Hover scale, transitions fluides
|
||||
- **Responsive** : Adapté mobile et desktop
|
||||
|
||||
### Couleurs des Jauges
|
||||
Les jauges utilisent un gradient de couleurs pour représenter visuellement la plage de valeurs :
|
||||
- **Cyan** (#06b6d4) : Début de plage
|
||||
- **Bleu** (#3b82f6) : Zone basse
|
||||
- **Vert** (#10b981) : Zone optimale
|
||||
- **Ambre** (#f59e0b) : Zone élevée
|
||||
- **Rouge** (#ef4444) : Zone critique
|
||||
|
||||
## 🔧 Implémentation Technique
|
||||
|
||||
### Fichiers Modifiés
|
||||
|
||||
1. **`frontend/index.html`**
|
||||
- Remplacement des widgets simples par des widgets avec canvas pour les jauges
|
||||
- Ajout de la modale de détails complète
|
||||
- Structure responsive avec Tailwind CSS
|
||||
|
||||
2. **`frontend/app.js`**
|
||||
- Fonction `createGauge()` : Création de jauges semi-circulaires avec Canvas API
|
||||
- Fonction `initializeMetricGauges()` : Initialisation des jauges avec données
|
||||
- Fonction `openMetricDetails()` : Ouverture de la modale
|
||||
- Fonction `loadMetricHistory()` : Chargement de l'historique par période
|
||||
- Fonction `renderMetricChart()` : Rendu du graphique avec Chart.js
|
||||
- Fonction `initMetricModal()` : Initialisation des événements de la modale
|
||||
|
||||
### Technologies Utilisées
|
||||
- **Canvas API** : Pour le rendu des jauges semi-circulaires
|
||||
- **Chart.js** : Pour les graphiques d'historique
|
||||
- **Tailwind CSS** : Pour le styling responsive
|
||||
- **JavaScript ES6+** : Pour la logique interactive
|
||||
|
||||
## 📊 Données Utilisées
|
||||
|
||||
Les widgets utilisent les données de santé existantes :
|
||||
- `weight_kg` : Poids en kilogrammes (converti en livres pour affichage)
|
||||
- `bmi` : Calculé à partir du poids et de la taille
|
||||
- `date` : Date de la mesure
|
||||
|
||||
## 🚀 Utilisation
|
||||
|
||||
1. **Ouvrir le Health Dashboard** en cliquant sur le bouton "Health" dans la navigation
|
||||
2. **Visualiser les widgets** Weight et BMI avec leurs jauges colorées
|
||||
3. **Cliquer sur un widget** pour ouvrir la page de détails
|
||||
4. **Naviguer entre les périodes** (Recent, Week, Month, Year) pour voir l'historique
|
||||
5. **Consulter les statistiques** et le graphique d'évolution
|
||||
|
||||
## 🎯 Fonctionnalités Futures
|
||||
|
||||
Les boutons suivants sont préparés pour des fonctionnalités futures :
|
||||
- **"Add Entry"** : Saisie manuelle de nouvelles mesures
|
||||
- **"History data"** : Export des données historiques
|
||||
|
||||
## ✅ Compatibilité
|
||||
|
||||
- ✅ Mode sombre/clair
|
||||
- ✅ Responsive (mobile, tablette, desktop)
|
||||
- ✅ Navigateurs modernes (Chrome, Firefox, Safari, Edge)
|
||||
- ✅ Intégration avec les données Google Fit existantes
|
||||
|
||||
## 🎨 Aperçu Visuel
|
||||
|
||||
Les widgets ressemblent maintenant à l'image de référence avec :
|
||||
- Fond sombre élégant
|
||||
- Jauges semi-circulaires colorées
|
||||
- Indicateur triangulaire blanc
|
||||
- Valeur en grand format au centre
|
||||
- Statut et unité en dessous
|
||||
- Effet hover avec légère mise à l'échelle
|
||||
|
||||
---
|
||||
|
||||
**Note** : Les widgets s'affichent uniquement lorsque des données de santé sont disponibles. Assurez-vous d'avoir synchronisé vos données Google Fit pour voir les jauges en action.
|
||||
Reference in New Issue
Block a user