Ce projet vise à développer une application mobile Android de gestion de recettes de cuisine, à usage personnel et familial. L’application permettra de consulter, modifier et organiser des recettes partagées entre plusieurs utilisateurs identifiés, avec un accès en ligne et en hors-ligne.
- Centraliser et organiser des recettes de cuisine accessibles à tous les utilisateurs autorisés.
- Permettre à chacun d'ajouter, modifier ou supprimer des recettes.
- Pouvoir consulter les recettes sans connexion, avec synchronisation différée à la reconnexion.
- Identifier l’auteur ou le modificateur d’une recette.
- Proposer une navigation fluide, une interface adaptative et une expérience utilisateur moderne.
- Authentification via Firebase Authentication (email/mot de passe ou Google).
- Attribution automatique de l’auteur lors de l’ajout ou la modification d’une recette.
- Ajouter, modifier, supprimer une recette.
- Affichage sous forme de liste scrollable.
- Tri possible (par temps, nom, auteur, etc.).
- Filtrage par catégorie ou ingrédients.
- Possibilité de marquer une recette comme favorite (stockée localement).
- Sauvegarde locale automatique des données (Room ou fichier JSON).
- Synchronisation automatique avec Firestore à la reconnexion.
- Les modifications faites par un utilisateur sont propagées automatiquement aux autres utilisateurs connectés via Firestore.
{
"nom": "Tarte aux pommes",
"categorie": "Dessert",
"tempsPreparation": 45,
"instructions": "Éplucher les pommes, les couper, etc.",
"ingredients": [
{"nom": "pomme", "quantite": 3, "unite": "pièce"},
{"nom": "sucre", "quantite": 100, "unite": "g"}
],
"auteur": "uidFirebase",
"timestampModification": "2025-06-09T14:00:00"
}- Nom (String)
- Quantité (Float ou Int selon le type)
- Unité (g, mL, cuil., etc.)
-
Modèle MVC :
- Modèle : gestion des données (recettes, ingrédients) + communication Firestore
- Vue : interface en Jetpack Compose (responsive)
- Contrôleur : logique métier et communication entre les composants
-
Base de données :
- En ligne : Firebase Firestore (temps réel)
- En local : Room ou cache JSON pour accès hors-ligne
-
Services Firebase :
- Firestore (NoSQL Cloud DB)
- Firebase Auth (authentification utilisateur)
- Firestore Sync (écoute en temps réel des données)
- Connexion / inscription
- Liste des recettes (filtrable / triable)
- Détail d’une recette
- Ajout / modification d’une recette
- Favoris
- Adaptation smartphone et tablette
- Thème clair / sombre basé sur les préférences système
- Kotlin + Jetpack Compose
- Pas d’emoji dans les chaînes de caractères
- Support du mode hors-ligne (via cache local)
- UTF-8 sans caractères spéciaux non pris en charge
- Authentification obligatoire pour modifier les recettes
-
Projet personnel, sans échéance stricte
-
Avancement par fonctionnalités prioritaires :
- Authentification
- Affichage des recettes (lecture)
- Ajout / modification / suppression
- Favoris hors-ligne
- Synchronisation Firestore
- Tri / filtrage
- Ajout d’un moteur de recherche
- Ajout de photos ou d’illustrations
- Partage de recettes via lien ou QR code
- Export PDF ou impression