Logiciel créé pour être visible uniquement sur un smartphone

Whatscook’App

Choix de la plateforme

La première analyse technique est le choix de la plateforme utilisée. Deux choix s’offrent à nous : une application mobile ou un site web responsive.
Une application mobile est un logiciel créé pour être visible uniquement sur un smartphone tandis qu’un site web responsive est un site internet optimisé pour s’afficher sur n’importe quel support.
Même si le choix n’est pas évident à faire, nous pouvons dégager certains éléments importants.
Premièrement, il n’est pas nécessaire d’implémenter la fonction « hors connexion » dans le cadre de notre projet. En effet, seuls les produits alimentaires suisses sont stockés localement contrairement aux recettes de cuisine qui sont elles recherchées par l’utilisateur à l’aide d’un service REST. Dans ce cas, une connexion internet s’avère donc nécessaire lorsque l’on recherche une recette de cuisine.
Deuxièmement, nous n’implémenterons pas la fonction permettant à l’utilisateur de scanner le code barre d’un produit alimentaire . Nombre d’applications proposent déjà cette fonctionnalité.

Choix du langage de programmation

Maintenant que le choix de la plateforme est fait, nous devons définir le langage de programmation adopté pour le développement de notre site internet.
Parmi la quantité de langages de programmation employés pour créer un site web, trois d’entre eux sont notablement connus. Il s’agit de PHP, de C# et de Java.
Premièrement, le langage PHP est de type dynamique. Ce qui signifie qu’il n’y a pas de règle stricte qui définisse la manière de développer un site internet. Cela permet de laisser plus de flexibilité aux programmeurs quant à l’utilisation des méthodes en développant en PHP plutôt qu’en C# ou en Java.
Deuxièmement, développer une application en un mois et demi est un délai très court. Par conséquent choisir un langage facile à écrire avec beaucoup de documentation en ligne nous permet d’avoir un meilleur prototype à la fin du projet.
Finalement, une application internet en Java doit être déployée sur un serveur web couplé avec un moteur web Java (serveur Apache Tomcat) et un site internet en C# uniquement sur serveur IIS. A contrario, un site internet en PHP peut être déployé sur la majorité des serveurs de type web (serveur Apache, serveur IIS, serveur Lighttpd). Ainsi, développer une application en PHP laisse au développeur une plus grande latitude dans le large choix des serveurs utilisés.

Architecture MVC

Le site web est composé de l’architecture Model-Vue-Controller (MVC). Cette architecture sépare la partie graphique (frontend), la partie traitement (backend) et la partie donnée. Cette séparation permet une compréhension plus claire du site web ainsi qu’un gain de temps dans la maintenance et dans l’évolution future de celui-ci. (Voisin, 2009) MVC est composée de trois entités occupant des rôles bien définit.
le modèle qui s’occupe de gérer les données et sert d’intermédiaire entre la base de données et le contrôleur;
le contrôleur qui traite les requêtes reçues par l’utilisateur et envoie la réponse à la vue;
La vue qui est l’élément visible de l’utilisateur, l’interface graphique.
Le Framework Laravel respecte l’architecture MVC. Cependant une quatrième entité compose ce Framework : le composant routing. Cette entité permet de mapper les URL aux actions du contrôleur désigné

Récupération des données distantes

Lorsque nous parlons de « récupération de données distantes », nous parlons du processus consistant à prendre les données d’une remote database et de les stocker localement dans notre base de données.
Ce processus est effectué sur la remote database OpenFood qui comprend des informations relatives à des produits alimentaires suisses traduits en quatre langues : allemand, français, italien et anglais.
La récupération des données remplit la table « products » et la table « ingredients » de notre base de données local whatscookapp.

Sécurisation du web service

Un site internet utilisant un service REST se doit d’être Stateless. Nous entendons par là qu’aucune requête envoyée au serveur par un utilisateur est stocké dans notre service.
L’utilisation de Tokens permet de respecter ce critère. Un Token est une chaine de caractères unique générée par le serveur qui sert alors d’identifiant pour chaque requête envoyée par le client au serveur. (Herpin, 2015)
Dans notre site, nous utilisons l’authentification standard de Laravel. Cette authentification est dite Stateful. Cela veut dire que le serveur garde en mémoire un cookie permettant d’identifié l’utilisateur connecté.
Ainsi, pour sécuriser et utiliser notre service REST en mode Stateless, l’utilisation d’un Json Web Token est une solution intéressante.
En effet, lorsqu’un utilisateur s’authentifie au serveur et lorsque le serveur confirme l’identité de celui-ci, il lui renvoie un jeton. Ce jeton (token) permet à l’utilisateur d’accéder aux ressources du serveurs protégés par l’authentification JWT.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport-gratuit.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

1 Glossaire 
2 Introduction
3 Gestion du projet 
3.1 Méthodologie Agile
3.1.1 Product Backlog
3.1.2 Planification
3.2 Cahier des charges
4 Etat de l’art 
4.1 L’application Fooducate
4.1.1 Conclusion
5 Analyse des technologies et de la plateforme 
5.1 Choix de la plateforme
5.2 Choix du langage de programmation
5.3 Choix du Framework en PHP
6 Analyse des remotes databases
6.1 Sélection des remotes databases
6.1.1 Open Food
6.1.2 Yummly
7 Outils et technologies utilisées
7.1 Serveur
7.1.1 WampServer
7.1.2 MySQL
7.1.3 PHPMyAdmin
7.2 Back-end
7.2.1 PHP
7.2.2 Framework Laravel
7.2.3 Gitlab
7.3 Front-end
7.3.1 Bootstrap
7.3.2 Javascript
7.4 IDE
8 Développement
8.1 Objectif de l’application
8.1.1 Diagramme d’architecture
8.1.2 Diagramme de l’utilisateur
8.1.3 Fonctionnalité clé de l’application
8.1.4 Vocabulaire
8.2 Architecture
8.2.1 Architecture MVC
8.2.2 Structure de la base de données
8.2.3 ORM
8.2.4 Migrations
8.3 Récupération des données distantes
8.3.1 Produits alimentaires
8.3.2 Ingrédients
8.3.3 Allergies
8.3.4 Recettes de cuisine
8.4 Création d’un Service web
8.4.1 Le format de données
8.4.2 L’outil Postman
8.4.3 Les URI
8.5 Fonctionnalités du site internet
8.5.1 Structure du site web
8.5.2 Authentification de l’utilisateur
8.5.3 Produits alimentaire
8.5.4 Recette de cuisine
8.5.5 Fonctions d’administrateur
8.6 Deployment du site internet
9 Feedback
9.1 Compte rendu des remotes databases
9.1.1 OpenFood
9.1.2 Yummly
9.2 Améliorations proposées
9.2.1 Utilisation de la plateforme comme intermédiaire
9.2.2 Recette de cuisine
9.2.3 Sécurisation du web service
9.3 Eléments non réalisés
9.4 Ecart de temps par rapport à la planification
10 Conclusion 

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *