Aller au contenu
Dimitri Robiere PerrietD. R. PerrietCaen, FR — --:--:--FR · EN

FoodKeeper, app anti-gaspillage en React Native

○ Archivé
Client
Projet personnel
Rôle
Développeur full-stack et mobile
Durée
5 mois
Année
2024
Stack
React Native · Expo · TypeScript · Node.js · Express · MySQL · Clerk · OpenAI API
FoodKeeper, app anti-gaspillage en React Native — illustration
Fig. 01 — FoodKeeper, app anti-gaspillage en React Native, illustration
(00) — En bref

FoodKeeper, app anti-gaspillage en React Native : suivi du frigo et des placards, scan Open Food Facts, reconnaissance des aliments par IA et rappels.

(01)

Contexte

FoodKeeper est une app mobile contre le gaspillage alimentaire, un projet personnel commencé fin 2024. Le but : moins jeter, en sachant ce qu’on a chez soi et ce qui arrive bientôt à expiration.

L’app enregistre chaque produit avec sa date de péremption, sa quantité et ses informations nutritionnelles, puis prévient avant qu’il soit trop tard. Une première version en JavaScript a été suivie d’une seconde, réécrite en TypeScript au printemps 2025 avec son propre backend.

(02)

Challenge

Saisir chaque aliment à la main décourage vite. L’ajout devait être quasi instantané, pour un produit emballé comme pour un fruit sans code-barres.

La seconde version ajoutait la synchronisation entre appareils, avec ses conflits à régler, et un accès à la reconnaissance d’image qui ne devait exposer aucune clé d’API dans l’app.

(03)

Approche

J’ai construit l’app avec Expo : scan de code-barres relié à Open Food Facts (Nutri-Score, NOVA, allergènes), import de photo, inventaire filtrable par date d’expiration et notifications de rappel. Pour les produits sans code-barres, j’ai testé plusieurs services de vision avant de retenir GPT-4o, qui reconnaît l’aliment et lit la date de péremption sur la photo.

Le backend Node.js et Express, sur MySQL, gère l’authentification avec Clerk et une synchronisation par fusion, avec historique et détection des conflits. Il sert aussi de passerelle vers l’analyse d’image, réservée aux utilisateurs connectés.

(04) — Résultats

Chiffres clés
37
commits
5
mois de développement
2
versions de l’app
iOS · Android
plateformes
← Projet précédent20 · Katapult, plateforme de candidatures pour un incubateurProjet suivant22Extensions WordPress sur mesure en PHP