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 :

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

Modèle de la base de données

Diagramme 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 :

Maquette 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 :

Cette organisation permet une séparation claire des responsabilités, facilitant ainsi la maintenance et l’évolution de l’application.

Architecture du code

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 :

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

Extrait de MainActivity
Architecture du code

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

Extrait de MenuActivity
Screen du Menu

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

Extrait de SessionActivity
Screen de Session

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

Extrait de AjoutSessionActivity
Screen de AjoutSession

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

Extrait de DetailsSessionActivity qui montre les fonctions appelé lors du clic sur les boutons approprié

Extrait de DetailsSessionActivity2
Screen de détailsSession

Extrait de SessionDAO

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

Extrait de RecetteProposerActivity

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

Extrait de ProposerDAO
Screen de AjoutSession

Cela appel aussi la fonction modifier qui actualise la listeView en dessous pour y inclure la recette ajouter

Extrait de RecetteProposerActivity2

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

Screen de Suppression

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é

Retour au Portfolio
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é