Documentation technique

1. Vue d’ensemble du projet

E-CARE est une application mobile multiplateforme dédiée à l’organisation personnelle et au suivi nutritionnel. L’application vise à centraliser les besoins essentiels autour de l’alimentation, de l’organisation et du bien-être dans une interface intuitive et accessible.

2. Architecture technique

2.1 Stack technologique

Technologie Version Rôle
Flutter Latest stable Framework de développement multiplateforme (Android, iOS, Web, Desktop)
Spoonacular API v1 Génération de menus, informations nutritionnelles, base de recettes
Firebase v9+ Authentification Google, backend, configuration projet

2.2 Architecture générale

┌─────────────────────────────────────────┐
│                FRONTEND                 │
│              (Flutter App)              │
├─────────────────────────────────────────┤
│              NAVIGATION                 │
│            (Flutter Router)             │
├─────────────────────────────────────────┤
│                BACKEND                  │
│             (Firebase)                  │
├─────────────────────────────────────────┤
│                  API                    │
│           (Spoonacular API)             │
└─────────────────────────────────────────┘

2.3 Type d’application

  • Client-side : Application mobile s’exécutant directement sur l’appareil utilisateur
  • Multiplateforme : Compatible , Android, Web
  • Modulaire : Architecture en modules indépendants pour faciliter le développement et la maintenance

3. Fonctionnalités techniques

3.1 Authentification

  • Provider : Firebase Authentication
  • Méthode : Connexion via compte Google
  • Sécurité : Gestion des tokens et sessions via Firebase

3.2 Calcul nutritionnel

  • Algorithme : Équation de Mifflin-St Jeor pour le métabolisme de base
  • Formule hommes : BMR = 10 × poids(kg) + 6.25 × taille(cm) - 5 × âge(ans) + 5
  • Formule femmes : BMR = 10 × poids(kg) + 6.25 × taille(cm) - 5 × âge(ans) - 161

3.3 Intégration API Spoonacular

  • Endpoints utilisés :
    • /recipes/complexSearch : Recherche de recettes
    • /recipes/{id}/information : Détails nutritionnels
    • /mealplanner/generate : Génération de menus
    • /recipes/{id}/analyzedInstructions : Instructions de préparation

3.4 Base de données

  • Solution : API externe (Spoonacular) pour éviter la gestion d’infrastructure
  • Données locales : Cache Flutter pour les favoris et préférences utilisateur
  • Synchronisation : Via Firebase pour la persistance des données utilisateur

4. Modules fonctionnels

Module Authentification

Module Calcul Calorique

Module Recettes

5. Interface utilisateur

  • Écrans principaux :
    • Accueil/Dashboard
    • Recherche de recettes
    • Calcul calorique
    • Profil utilisateur
    • Favoris

6. Gestion de projet et développement

6.1 Méthodologie

  • Approche : Méthode Agile adaptée
  • Outils : Trello pour le suivi des tâches, GitHub pour le versioning
  • Branches : Développement en branches parallèles pour la modularité

6.2 Workflow de développement

main (production)
├── develop (intégration)
│   ├── feature/auth
│   ├── feature/recipes
│   ├── feature/calculator
│   └── feature/ui

7. Tests et déploiement

7.1 Stratégie de tests

  • Tests unitaires : Logique métier et calculs
  • Tests d’intégration : API calls et authentification
  • Tests UI : Parcours utilisateur critiques

7.2 Déploiement

  • Android : Google Play Store
  • Web : Firebase Hosting
  • CI/CD : GitHub Actions pour l’automatisation

8. Sécurité et performances

8.1 Sécurité

  • Authentification : OAuth 2.0 via Google
  • API Keys : Stockage sécurisé via variables d’environnement
  • Données utilisateur : Chiffrement via Firebase