Tableau de bord personnel
Une application web personnelle qui regroupe en un seul endroit l’agenda, le suivi nutritionnel, les recettes et le stock alimentaire.
Contexte et rôle
Projet personnel, conçu et développé seul, de l’API à l’interface. L’idée : centraliser dans une seule application des usages du quotidien habituellement répartis entre plusieurs outils.
Architecture
Interface webReact 18 + Zustand
APIFastAPI
PostgreSQLdonnées
Google Agendasynchronisation
CIQUAL175 aliments
Le front React, dont l’état est géré avec Zustand, dialogue avec une API FastAPI adossée à PostgreSQL.
Fonctionnalités
- Agenda
- Synchronisation avec Google Agenda
- Nutrition
- Base nutritionnelle CIQUAL (175 aliments)
- Recettes
- Système de recettes
- Stock
- Scan de codes-barres pour alimenter le stock
- Interface
- Notifications toast
Choix techniques et difficultés
- Stack
- FastAPI pour l’API Python, React 18 et Zustand pour l’interface, PostgreSQL pour les données
- Déploiement
- Docker Compose : l’environnement se relance à l’identique
- Google Agenda
- La synchronisation a demandé de traiter les fuseaux horaires avec rigueur : un correctif dédié a été nécessaire
Preuves
- Tests
- Environ 208 tests automatisés
- Couverture
- Entre 71 et 74 % du code
- CI/CD
- GitHub Actions exécute la suite à chaque modification
Voir aussi : tous les projets, compétences