ECOM RICM5 Groupe5 2015

Bienvenue sur la fiche de suivi du projet Restauration personnalisée en ligne.

Un projet de site de E-commerce dans lequel nous allons nous initier à la programmation J2EE.

Nous sommes le groupe 5 de la promotion RICM5 - 2015/2016.

Présentation du projet
Le site porte sur un service de restauration personnalisée. Deux modes de fonctionnement vous sont possibles :


 * des formules sont proposées par des artisans restaurateurs, sur lesquelles il vous est possible d’imposer des contraintes (la cuisson,...) selon vos affinités gustative, si l’artisan le propose.


 * des thèmes culinaires sont proposés par des artisans restaurateurs qui se charge de répondre à votre demande de plat dans un temps imparti. Il est à noter que l’artisan peut librement accepter ou refuser le traitement de votre demande dans la mesure des stocks disponibles. Dans le cas d’un refus une proposition peut vous être faite par l’artisan.

L'équipe

 * Robin Eudes : Chef de projet
 * Malek Mammar : Scrum Master
 * Zhang Zhengmeng : Développeur

Etude du marché
Suite à la diffusion de notre questionnaire, nous avons obtenu 26 réponses à l'heure actuelle. Bien que cet échantillon de réponse soit limité, nous l'avons jugé suffisamment représentatif pour baser nos principaux axes de travail en adéquation avec les réponses reçues.

Utilisateurs cibles


Nous ciblons principalement les étudiants, ou les jeunes salariés.

Besoins utilisateurs


Le moyen principal de paiement serait la carte bancaire, cependant il serait souhaitable que notre système accepte différents modules de paiements tel que Paypal, Izly. La base d'utilisateur est par ailleurs favorable à un système de fidélité, récompensant le client d'une commande offerte après une certaine quantité d'achats à définir. Le site doit également donner accès à un système de notation sur les formules ou plats proposés par les restaurateurs, l'avis des autres clients étant un critère de choix important.

Etude de la concurrence
La concurrence est nombreuse, et souvent spécialisée dans un domaine culinaire. En voici quelques exemples :


 * Foodpanda : Le site nous proposera d'abord de choisir un restaurant, puis le menu que l'ont souhaite commander, avant de finaliser la commande (paiement). Cependant, on peut également effectuer une recherche par type de cuisine,et donc trouver les restaurants servant ce type de plats, pour revenir dans le premier schéma évoqué (choix restaurant -> choix plat -> paiement). La recherche par type de cuisine est pas mise en avant. Le site reste malgré tout assez clair, bien que chargé. Une application mobile est proposée par ailleurs (Android/iOS/Windows Phone).


 * SushiShop : Thème "sombre" pour le site, on a un accès direct aux "boxes" (menus sushis), ou à la carte détaillée. Le menu donnant accès à la carte nous offre un "diaporama" des plats servis, très agréable visuellement. Le panier sera affiché dans un menu sur la droite uniquement une fois que nous avons sélectionné un plat. Un espace de connexion vers son compte est disponible en haut à droite. Logo discret sur le coin supérieur gauche.

Plateformes d'utilisation


La mise en forme de notre site devra être capable de supporter différents supports, PC et mobiles principalement (responsive design).

Exigences fonctionnelles

 * Tâches prioritaires
 * Gestion d'une session sécurisée
 * Acteur client : Effectuer une commande
 * Acteur client : Gérer son panier
 * Acteur artisan : Gérer son catalogue


 * Tâches secondaires
 * Acteur client : Effectuer un appel d'offre
 * Acteur artisan : Répondre à un appel d'offre

Exigences non fonctionnelles

 * Propriétés ACID sur les transactions (en particulier le paiement)
 * Utilisabilité, selon Les critères ergonomiques de Bastien & Scapin
 * Gestion fine de l'utilisation de HTTPS
 * Résistance du système à la montée en charge (Temps de service constant)
 * Réduire au minimum le parcours de paiement
 * Portabilité (responsive design) PC, mobiles.

Tâches prioritaires




Tâches secondaires




Base de données


Vous remarquerez, qu'il n'y a pas de table "Panier" ou "Historique", car nous considérons que ces données sont à sauvegarder en session.

Faire une commande (client)
Priorité : forte

La tâche "Faire une commande" pour l'acteur Client se décomposer en ces 2 IHM abstraites : Consulter la carte et Consulter son panier.





Gérer son catalogue (artisan)
Priorité : forte



Planification du projet - SCRUM
SCRUM est la méthode de travail préconisée, bien que non adaptée à la nature exploratoire du projet. Nous tacherons néanmoins de planifier au mieux.

Sprint planning ---

Sprint 1 : 15/09/2015 - 28/09/2015

 * Choix d'un sujet de commerce en ligne
 * Prise en main des outils de développement J2EE
 * Réalisation d'un questionnaire
 * ciblage du marché
 * étude de marché sur la concurrence
 * identification des besoins utilisateur

Sprint 2 : 29/09/2015 - 12/10/2015

 * Réalisation d'un arbre des tâches
 * Conception d'une architecture générale
 * Publication des documents de conception IHM sur air.imag.fr
 * Analyse des résultats du questionnaire

Sprint 3 : 13/10/2015 - 26/10/2015

 * Mise en forme des arbres des tâches, IHM abstraites.
 * Analyse de la concurrence
 * Réalisation de la maquette
 * Conception Architecture système
 * Préparation de la soutenance "Conception" GL/IHM/Système

Sprint 4 : 27/10/2015 - 09/11/2015

 * Mise en place client d'administration lourd
 * Session bean Client,Artisan,Product : première version
 * Recherches concernant la mise en place d'une API REST
 * Recherches concernant la gestion de l'authentification via l'API REST
 * Mise en place d'une page d'index pour la webapp utilisant bootstrap, angularJS
 * Modification de quelques Entity bean (champs inutiles, etc )

Sprint 5 : 10/11/2015 - 23/11/2015

 * Session beans Formule, Orders première version
 * Autre sessions beans : version 2, révision des prototypes, ajout de fonctionnalités
 * API REST sans authentification v1 opérationnelle pour Product, Artisan, Client ( incomplète, cependant )
 * Modification de certaines propriétés des entity pour empêcher des incohérences/dysfonctionnements
 * Ajout fonctions pour modifier un champ unique de Product (icon_url,description,isAvailable,price,title)

Sprint 6 : 24/11/2015 - 07/12/2015

 * Finalisation Authentification API + diverses fonctionnalités
 * Finalisation des divers Session beans (client,artisan,formule,product,orders)
 * Ajout newsletter hebdomadaire, mensuelle
 * Possibilité d'envoie de mail massif au client (hors newsletter)
 * Envoie de mail à la création/suppression compte
 * Envoie de mail à la création d'une commande et modification de son état
 * Utilisation d'une URL avec UUID pour activation du compte créé
 * Suppression des comptes non activés après une semaine
 * IHM ClientSide (utilisation du site web...) avancement
 * Panier @Statefull + utilisation sur interface web
 * Ajout fonctionnalités dans le client d'administration
 * Possibilité de modifier le contenu des newsletters
 * Bug fix divers
 * Mise à jour wiki
 * Pagination des résultats sur la page d’accueil (liste des formules)

Sprint 7 : 08/12/2015 - 16/12/2015

 * Bug Fix API
 * Suppression token user lors du logout
 * Modification routes AngularJS
 * Cleaning Code (Audit SONAR du code)
 * Mise à jour Javadoc
 * Mise à jour Wiki
 * Benchmark JMeter
 * Bug Fix Création Formule (ajouts des produits)
 * Rédaction Document Conception Système, Document Évaluation Système
 * Mise à jour Charte Graphique
 * Préparation démonstration - soutenance
 * Debug API
 * corrections mineures dans le système ( pseudo unique dans la BDD )

Divers

 * Trace de travail (Sprint 1), Conception "générale" du projet (livrable 08/09)
 * Questionnaire (étude des besoins)
 * Trace de travail (Sprint 2), Conception IHM (livrable 06/10)

Note : Les documents de type "Trace de travail" ne sont que des snapshots de notre travail au jour J, et ne sont donc pas nécessairement en accord avec la version actuelle de notre projet, présentée ci dessus.

Dépôt Github
GitHub - ECOM GRP5 (dépôt actuellement privé).

Note : Merci de nous communiquer un identifiant de compte à ajouter, si vous souhaitez observer nos développements.

Board Waffle.io
Board Waffle.io - ECOM GRP5 (le dépot Github étant privé, cette board requiert la même authentification)

SRS
Document SRS

Métrique (Cloc)
--- Language                    files          blank        comment           code --- Java                           58           1073            850           5513 Javascript                      4             86             19            583 HTML                            9             48             17            575 Maven                           5             40             33            288 Bourne Shell                    5              0              0             41 DOS Batch                       3              0              0             40 JSON                            2              0              0             32 XML                             4              0             25             29 CSS                             1              6              1             23 --- SUM:                           91           1253            945           7124 ---



Benchmark(BlazeMeter)
Benchmark BlazeMeter

Audit SONAR (CI)
Audit SONAR (CI)

Schéma Conception Système
Schéma SCS