GoFit est une application en ligne de commande (CLI) dédiée au suivi nutritionnel, permettant aux utilisateurs de suivre leur alimentation quotidienne et d'atteindre leurs objectifs de santé grâce à l'API FoodData Central (FDC).
- Recherche d'aliments dans la base de données FoodData Central
- Gestion des repas quotidiens avec portions personnalisées
- Génération de rapports nutritionnels détaillés
- Calcul automatique des macronutriments et calories
- Visualisation des données nutritionnelles sous forme de tableaux
- Historique des repas consommés
- Suggestions de menus quotidiens équilibrés
- Go 1.23 ou supérieur
- PostgreSQL 14 ou supérieur
- Une clé API FoodData Central (obtenue sur https://fdc.nal.usda.gov/api-key-signup.html)
- Cloner le dépôt :
git clone https://github.com/lsoulet/gofit.git
cd gofit- Installer les dépendances :
go mod download- Configurer la base de données PostgreSQL :
psql -U postgres
CREATE DATABASE gofit;- Configurer les variables d'environnement dans un fichier
.env:
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=votre_mot_de_passe
DB_NAME=gofit
FDC_API_KEY=votre_clé_api_fdc- Lancer l'application :
go run main.go- Commandes disponibles :
Note : Toutes les commandes doivent être préfixées par gofit
-
search [terme]: Rechercher un aliment dans la base FDCgofit search pomme
-
detail [fdc_id]: Voir les détails nutritionnels d'un alimentgofit detail 173939
-
addfood [fdc_id]: Ajouter un aliment à un repas existantgofit addfood 173939
-
newmeal: Créer un nouveau repas typegofit newmeal
-
addmeal: Ajouter un repas existant à un menu journaliergofit addmeal
adduser: Créer un nouvel utilisateurgofit adduser
addmenu: Créer un nouveau menu journaliergofit addmenu
report: Générer un rapport nutritionnel pour tous les repasgofit report
gofit/
├── main.go # Point d'entrée de l'application
├── models/ # Modèles de données
│ ├── meal.go
│ └── ...
├── fdc/ # Intégration avec l'API FoodData Central
│ ├── client.go
│ ├── daily_menu.go
│ └── report.go
├── db/ # Gestion de la base de données
│ └── ...
└── cmd/ # Commandes CLI
└── ...
L'application utilise PostgreSQL pour stocker :
- Les repas enregistrés
- Les menus types
- L'historique des rapports nutritionnels
- Les préférences utilisateur
- Forker le projet
- Créer une branche pour votre fonctionnalité
- Commiter vos changements
- Pousser vers la branche
- Créer une Pull Request
Pour toute question ou problème :
- Consulter les Issues
- Créer une nouvelle issue si nécessaire
main.go: Point d'entrée de l'applicationmodels/: Définitions des structures de donnéesservices/: Logique métier (à venir)storage/: Gestion de la persistance des données (à venir)