Projet Flutter développement d’une application mobile pour un restaurant
Application CRUD avec Sqflite dans Flutter
-
Contexte et objectifs
- La société « Le Délice » souhaite développer une application mobile pour améliorer l’expérience de ses clients et optimiser les processus internes de gestion du restaurant. Les principaux objectifs sont les suivants :
- Permettre aux clients de commander et payer leurs repas en ligne, avant même d’arriver au restaurant.
- Offrir aux clients la possibilité de consulter le menu, les informations sur le restaurant et de réserver une table.
- Faciliter la gestion des commandes, du stock et de la facturation pour les équipes du restaurant.
- Encourager la fidélisation des clients grâce à un programme de récompenses.
-
Fonctionnalités principales
- L’application doit permettre à l’utilisateur de gérer une liste d’éléments en utilisant les fonctionnalités de base des opérations CRUD. Chaque élément doit avoir au moins les attributs suivants :
- ID : Identifiant unique de l’élément.
- Nom : Nom de l’élément.
- Description : Description de l’élément.
-
Fonctionnalités requises :
-
Module Client
- Consultation du menu (plats, boissons, desserts) avec photos, descriptions et prix
- Passation de commandes en ligne avec paiement sécurisé
- Réservation de tables avec choix de la date, de l’heure et du nombre de couverts
- Affichage des informations sur le restaurant (horaires, emplacement, etc.)
- Gestion d’un compte utilisateur avec historique des commandes et réservations
- Programme de fidélité avec accumulation de points et récompenses
-
Module Restaurateur
- Gestion des tables et des réservations (affichage, modification, annulation)
- Gestion des commandes (réception, préparation, livraison)
- Suivi du stock des produits et alertes en cas de rupture
- Génération de rapports sur l’activité (chiffre d’affaires, fréquentation, etc.)
- Gestion des comptes utilisateurs clients (création, modification, suppression)
- Paramétrage du menu (ajout, modification, suppression de plats et boissons)
-
Contraintes techniques :
- Développement de l’application mobile en utilisant le framework Flutter
- Utilisation de la bibliothèque Sqflite pour la gestion de la base de données locale
- Mise en place d’une architecture logicielle propre, par exemple en utilisant le pattern BLoC
- Implémentation d’un système de paiement sécurisé en ligne (par exemple, via Stripe ou PayPal)
- Intégration d’un système de notifications push pour informer les clients sur l’état de leurs commandes
- Respect des principes de conception Material Design pour l’interface utilisateur
- Optimisation des performances de l’application pour assurer une expérience fluide
- Développement de l’application pour les plateformes iOS et Android
-
Interface utilisateur et widgets :
- Conception d’une interface utilisateur simple, intuitive et agréable à utiliser, en suivant les principes de conception d’applications mobiles.
- Utilisation des widgets standard de Flutter tels que :
- AppBar pour la barre de navigation supérieure
- Drawer pour le menu latéral
- ListView et ListTile pour afficher les listes d’éléments
- TextField pour la saisie de texte
- Button, ElevatedButton et IconButton pour les boutons d’interaction
- Card pour afficher des informations sous forme de cartes
- Column et Row pour la mise en page verticale et horizontale
- Scaffold pour la structure de base de la page
- SizedBox pour contrôler les espaces
- Text pour afficher du texte
- Icon pour les icônes
- Implémentation de widgets personnalisés pour des fonctionnalités spécifiques, le cas échéant.
- Respect des principes de Material Design pour l’apparence et l’expérience utilisateur.
- Mise en place d’une navigation fluide entre les différentes vues de l’application.
- Gestion efficace des états d’affichage (chargement, erreur, données vides, etc.).
- Optimisation des performances de l’interface pour assurer une expérience utilisateur fluide.
-
Livrables attendus :
- Application mobile iOS et Android fonctionnelle, intégrant l’ensemble des fonctionnalités décrites
- Code source de l’application Flutter.
- Documentation technique détaillée, incluant l’architecture, les choix technologiques et les procédures d’installation/déploiement et les choix de conception.
- Guide d’installation et d’utilisation de l’application.
- Manuel d’utilisation pour les clients et le personnel du restaurant
-
Évaluation :
- L’évaluation du projet sera basée sur les critères suivants :
- Respect des fonctionnalités requises.
- Qualité du code source (clarté, modularité, bonnes pratiques de programmation).
- Architecture de l’application (utilisation d’une architecture propre, séparation des responsabilités).
- Documentation technique claire et complète.
- Respect des contraintes techniques.