Projet CookFusion
Description du contexte
Lors d’un projet de groupe incluant la création d’un site et une application Android,
j’ai réalisé une application mobile permettant à un gérant de cuisine de gérer ses types de plats, ses plats et ses sessions de cuisine.
Cette application a pour objectif de faciliter l’organisation des menus et des événements culinaires directement depuis un smartphone.
L’utilisateur principal de l’application est le gérant, qui peut :
- Ajouter, modifier ou supprimer un type de plats (ex : entrée, plat principal, dessert, etc)
- Ajouter, modifier ou supprimer un plat (nom, description, type, etc.).
- Gérer les sessions de cuisine (date, heure, plats associés, etc.).
L'application est conçue pour fonctionner en mode hors-ligne grâce à l’utilisation d’une base de données SQLite embarquée.
Technologies utilisées
- Langage : Java , SQL
- framework : Android
- Architecture : MVC, DAO, PDO
- Outil de gestion de version : Git, GitHub
- Outils utilisés : Android Studio, looping(Modélisation BDD)
Modèle de la base de données
Elle reprend le modèle que l'on avait défini en amont et qui est équivalente à celle du site
Maquette Figma
Voici la maquette de l'application réalisée sur Figma :
Elle reprend les différentes pages de l'application et les interactions entre elles.
On peut voir que l'application est divisée en trois parties principales : les recettes, les types et les sessions.
Architecture du code
Le code de l’application suit le modèle MVC adapté à Android. On distingue trois grandes parties :
- Le contrôleur (dossier
controleur/
) contient les différentes activités Android qui assurent la gestion des interactions utilisateur et la navigation entre les vues.
- Le modèle (dossier
modele/
) regroupe les classes métiers (Adherent, Recette, Type, etc.) ainsi que les classes DAO permettant d’interagir avec la base de données locale SQLite.
- La vue (dossier
res/layout/
) rassemble les fichiers XML qui définissent l’interface graphique de chaque activité (ajout, détails, menus, etc.).
Cette organisation permet une séparation claire des responsabilités, facilitant ainsi la maintenance et l’évolution de l’application.
Fonctionnalités principales
Voici un aperçu des principales fonctionnalités de l’application :
Système de connexion
Lorsqu’on clique sur “Se connecter” cela appelle la fonction seConnecter de AdherentDAO.
Extrait de MainActivity :
Cette fonction vérifie que le pseudo et le mot de passe correspond bien à un adhérent enregistré dans la BDD ayant le rôle admin.
Extrait de AdherentDAO
Si la connexion est réussie, l’utilisateur est redirigé vers l’écran d’accueil de l’application.
Menu
Le menu permet de choisir sur quelles données nous souhaitons agir entre les recettes, les types et les sessions et nous redirige vers l’activité en question.
Extrait de MenuActivity
Gestion des sessions
Cette page affiche les différentes sessions dans une ListView et permet d'ouvrir le détail d'une session sélectionnée en transmettant les donnée de la session à une autre activité (DetailsSessionActivity).
Elle permet aussi d’aller à l’activité pour ajouter une session (AjoutSessionActivity).
Extrait de SessionActivity
Ajout d’une session
Lorsqu’on clique sur ajouter une session dans SessionActivity, on arrive sur une activité contenant un formulaire permettant d’ajouter une session
Cette page affiche les différentes sessions dans une ListView et permet d'ouvrir le détail d'une session sélectionnée en transmettant les donnée de la session à une autre activité (DetailsSessionActivity).
Elle permet aussi d’aller à l’activité pour ajouter une session (AjoutSessionActivity).
Extrait de AjoutSessionActivity
Toutes les fonctionnalités autour des sessions présentées au-dessus sont aussi présentes pour les recettes et les types en suivant la même logique (sauf pour le bouton voir les recettes associées, qui est exclusif aux sessions).
Modification et Suppression de session
Lorsqu’on clique sur une des sessions dans SessionActivity, on arrive sur une activité contenant un formulaire remplie des données de la session que l’on peut donc modifier ou supprimer à l’aide d’un bouton
Extrait de DetailsSessionActivity qui montre comment les données sont récupérés et affiché dans les EditText
Extrait de DetailsSessionActivity qui montre les fonctions appelé lors du clic sur les boutons approprié
Extrait de SessionDAO
Gestion des recettes associées
Lorsqu’on clique sur “Voir les recettes proposées”, on arrive sur l’activité RecetteProposerActivity qui comporte une liste déroulante contenant l’ensemble des recettes permettant d’en sélectionner une pour l’ajouter à celle de la session que l’on voit dans la listeView au-dessous.
Extrait de RecetteProposerActivity permettant la création de la liste déroulante
Lorsqu’on clique sur ajouter cela appelle ajouterRecetteProposer de ProposerDAO qui créer un élément Proposition avec le numéro de la Session et le numéro de la recette
Cela appel aussi la fonction modifier qui actualise la listeView en dessous pour y inclure la recette ajouter
Lorsqu’on clique sur l’un des éléments, cela nous propose de le supprimer de la liste des recettes proposée lors de la session
Lien vers le code source du projet :
Le code source complet du projet est disponible sur mon dépôt GitHub :
Accéder au dépôt.
Compétence du référentiel développé
Domaine d'activité 1 Support et mise à disposition des services informatiques |
Domaine d'activité 2 Conception et développement d'applications |
Domaine d'activité 3 Cybersécurité des services informatiques |
Activité 1.1 : Travailler en mode projet
- Analyser les objectifs et les modalités d’un projet
- Planifier les activités
- Réaliser une analyse de l’existant
- Identifier les indicateurs de suivi du projet
- Analyser les écarts
Activité 1.5 : Mettre à disposition des utilisateurs un service informatique
- Suivre les indicateurs
- Vérifier le bon fonctionnement des pages et modules réalisés
Activité 1.6 : Organiser son développement professionnel
- Mettre en place son environnement d’apprentissage personnel
- Mettre en œuvre des outils de veille informationnelle
|
Activité B2.1 : Conception et développement d’une solution applicative
- Participation à l’analyse fonctionnelle d’une solution applicative
- Utilisation d’un environnement de développement
- Réalisation des tests nécessaires à la validation
- Exploitation des sources et framework
- Développement, utilisation ou adaptation de composants logiciels
Activité B2.2 : Assurer la maintenance corrective ou évolutive d’une solution
- Évaluer et améliorer les performances
- Corriger un dysfonctionnement
- Mettre à jour les informations sur une version
Activité B2.3 : Gestion des données
- Développement et administration d’une base de données
- Interrogation avec un langage de requêtes (SQL)
|
Activité 3.1 : Protection des données personnelles et de l’identité numérique de l’organisation
- Respecter les traitements autorisés
- Signalement des risques liés au stockage et à la transmission de données personnelles
Activité B3.5 : Cybersécurisation d’une solution applicative et de son développement
- Mise en œuvre et vérification de la conformité d’une solution aux règles de sécurité
- Prévention des attaques
- Réalisation d’audits de sécurité
- Application d’un référentiel ou standard de sécurité
|