← Retour aux projets

Projet personnel · Flutter · Supabase

Photographier un repas, puis corriger l’estimation.

Flutter · DartSupabaseCode source privé

WarungFit est une application mobile qui estime les apports d’un repas à partir d’une photo. L’utilisateur peut corriger le résultat, enregistrer son repas et suivre ses objectifs dans le temps.

Étude de cas · code source privé

Bannière de présentation de WarungFit avec un plat photographié
Photo, estimation, correction.

Le parcours

L’utilisateur peut corriger l’estimation avant d’enregistrer le repas.

  1. Prendre une photo ou choisir une image.
  2. Envoyer l’image à une fonction serveur authentifiée.
  3. Recevoir une estimation structurée du repas.
  4. Corriger les ingrédients et les portions proposés.
  5. Enregistrer le résultat dans l’historique.

Les écrans clés

Les écrans principaux couvrent l’accueil, l’estimation, la correction et les objectifs.

Visuels de présentation fournis pour le projet ; ils ne constituent pas une preuve de déploiement public.

Voir le projet en action

La vidéo suit le parcours d’un repas, de la photo initiale à la correction finale. Elle montre aussi le lien entre l’application, les fonctions serveur et l’analyse d’image.

Résumé textuel

La démonstration montre la prise ou sélection d’une photo, l’estimation côté serveur, la correction des ingrédients et des portions, puis l’enregistrement du repas dans l’historique.

Démonstration silencieuse · 35 secondes.

Ce que j’ai construit

J’ai relié l’application Flutter à Supabase Auth, PostgreSQL, Storage et plusieurs Edge Functions. L’analyse d’image appelle OpenAI depuis le serveur. Le client conserve aussi un cache local pour afficher rapidement les objectifs et les repas récents.

Stack : Flutter · Dart · Supabase Auth · PostgreSQL · Storage · Edge Functions · OpenAI.

Architecture et données

Architecture de WarungFit avec l’application Flutter, Supabase et le service d’analyse d’image

Le schéma sépare l’appareil mobile, les services Supabase et le fournisseur d’analyse. Il montre l’authentification, le stockage privé et les règles d’accès.

Ouvrir le schéma interactif

Données et accès

Le projet manipule des photos de repas et des informations liées au profil. Les contrôles d’accès font donc partie du fonctionnement.

Session

Les fonctions sensibles vérifient le jeton de l’utilisateur avant de poursuivre.

Isolation

Les règles de la base limitent chaque compte à ses propres repas et objectifs.

Images

Les fichiers utilisent un espace privé organisé par utilisateur.

Entrées

Le texte, les images et les valeurs nutritionnelles sont contrôlés avant traitement.

Ce que j’ai appris

Ce projet m’a appris à faire fonctionner ensemble une application mobile, une base de données, du stockage de fichiers et un service d’IA distant. Il m’a aussi obligé à suivre le parcours complet d’une donnée personnelle, de la photo initiale jusqu’à la suppression du compte.

Le dépôt reste privé. Les tests entre plusieurs comptes et la suppression complète doivent encore être rejoués sur un environnement Supabase dédié avant toute mise en production.