Lubyb

LUBYB : Let Us Bring Your Bottle

= Présentation =

Description :
Ce site rentre dans le cadre du projet ECOM 2012 de la formation RICM5 à Polytech Grenoble.

LUBYB (pour "Let us bring your bottle") est un site de e-commerce basé sur la vente de vin en ligne.

Le but de notre site d' e-commerce de vente de vin en ligne est de permettre à l'utilisateur de profiter du droit du bouchon.

Un client peut se rendre sur notre site pour commander des bouteilles de son choix, et de se les faire livrer à domicile ou dans l' un de nos restaurants partenaires.

Cela permettrait notamment aux clients d’avoir un plus vaste choix de vin que celui proposé dans les restaurants non partenaires.

Equipe :

 * CLAVELIN Aurélien
 * GNATTO Christopher
 * HO Minh Quan
 * PRAK Soriya

Enseignants

 * [mailto:xavier.spengler@gmail.com Xavier Spengler]
 * [mailto:Sybille.Caffiau@imag.fr Sybille Caffiau]
 * [mailto:didier.donsez@imag.fr Didier Donsez]

Etudiants

 * [mailto:ricm5_lubyb@googlegroups.com Mailing List]

SVN
Vous pouvez accéder au repository de notre projet via la commande Subversion suivante :

svn checkout --username  https://imag-forge.e.ujf-grenoble.fr:443/svn/lubyb

Ressources
L'ensemble de nos documents ainsi que l'archive de notre projet sont disponibles https://bitbucket.org/Tetram/lubyb/downloads

= Methode Agile =

ScrumMaster
Nous avons choisi de mettre en place un système de ScrumMaster changeant tous les 15 jours, et ce afin de favoriser une meilleure implication de chacun des membres de l'equipe.

Durée Sprint
La durée d'un sprint a été fixée à deux semaines. La durée courte du sprint permettant des mises au point et feedbacks réguliers.

ScrumBoard
Pour suivre l'avancement des tâches de notre projet, nous utilisons l' outil collaboratif TRELLO.

Vous pouvez suivre notre ScrumBoard à l'adresse suivante : https://trello.com/b/vPwzKBcm

Product Backlog
"Un des outils importants de la méthode Scrum est le « product backlog » qui répertorie l'ensemble des objectifs principaux traduits sous forme de travaux concrets à réaliser." (wikipedia)

Dans le cadre de notre projet, nous pouvons définir quatre acteurs différents :
 * Utilisateur en mode invité
 * Utilisateur en mode identifié
 * Restaurateur (identifié)
 * Administrateur

Page d'accueil

 * Pour l'ensemble des acteurs:
 * Visualiser le catalogue de produits
 * Rechercher un produit
 * Visualiser les promotions
 * Ajouter un produit au panier
 * Accéder aux FAQ
 * Accéder au règlement
 * Accéder à la rubrique contact
 * Accéder au processus d'identification


 * En tant que client (identifié), je dois pouvoir en plus :
 * Accéder à mon compte
 * Voir le contenu lié a mon activité récente (ex : dernier produit commandé)
 * Accéder à la page de gestion des informations de mon compte


 * En tant que restaurateur, je suis un "client" particulier je dois donc pouvoir :
 * Accéder à mon compte
 * Accéder à l'interface utilisateur dédiée (restaurateur)
 * En tant qu'administrateur,
 * Accéder à l'interface utilisateur dédiée (admin)

Identification

 * En tant que client (invité), je peux:
 * Je suis client et j'ai déjà un compte Client : je m'identifie avec mon compte Client
 * Je suis client et je n'ai pas de compte : j'ouvre un compte Client
 * Je suis restaurateur et j'ai déjà un compte Client : je m'identifie avec mon compte Client
 * Je suis restaurateur et je n'ai pas de compte Client : je m'inscris en signalant mon status de restaurateur
 * Je suis Admin, je m'identifie avec mon compte Admin


 * En tant que client (identifié), je suis déjà identifié


 * En tant qu' administrateur, je suis déjà identifié

Navigation
L'ensemble des acteurs peuvent parcourir le site web : Les fonctions suivantes sont également disponibles pour tous les acteurs
 * Recherche de produit
 * Parcours Page d'accueil
 * Parcours Page catalogue/Page achat /Page Bon Plan ...
 * Ajout d'un/plusieurs article(s) dans le panier
 * Accès aux informations légales
 * Sauvegarde du panier si déconnexion non souhaitée
 * Vue sur l'historique de navigation au sein du site
 * Retour en arrière

Achat

 * En tant que client (invité), je peux
 * (Rechercher des vins)
 * Ajouter des vins dans le panier
 * Gérer mon panier


 * En tant que client (identifié), je peux
 * (Rechercher des vins)
 * Ajouter des vins dans le panier
 * Gérer mon panier
 * Finaliser la commande

Commande
Pour passer commande, les acteurs doivent être identifiés, ensuite ils peuvent :
 * Renseigner leurs informations (adresse livraison, adresse facturation)
 * Renseigner leur moyen de paiement
 * Accéder au récapitulatif de la commande

Comptes

 * En tant que client (invité), je ne suis pas encore identifié donc pas de compte


 * En tant que client (identifié), je peux :
 * Changer mon mot de passe
 * Changer mes info personnelles (adresse, téléphone etc)
 * Consulter mes commandes


 * En tant que client (identifié) signalé restaurateur, je peux en plus :
 * Ajouter un restaurant partenaire (qui devra être validé par un administrateur du site)
 * Consulter mes restaurants partenaires
 * Annuler un partenariat
 * Consulter mon crédit du mois


 * En tant qu'administrateur, je peux:
 * Supprimer un compte client
 * Valider un restaurant comme partenaire

Panier

 * En tant que client (invité), je peux:
 * Modifier mon panier (ajouter, modifier, supprimer)


 * En tant que client (identifié), je peux
 * Modifier mon panier (ajouter, modifier, supprimer)


 * En tant qu'administrateur, je n'ai pas de panier

Recherche

 * Pour l'ensemble des acteurs:
 * Rechercher un vin
 * Recherche directe (Référence)
 * Recherche par filtre (Région, Année, Prix)

Stock

 * En tant qu'administrateur,je peux :
 * Modifier le stock des vins


 * En tant que client (invité), je n'ai pas d'accès au stock


 * En tant que client (identifié), je n'ai pas d'accès au stock

Sprint Backlog

 * Système
 * Déploiement Amazon EC2
 * Analyse Sonar du projet
 * Tests et Correction du système
 * IHM
 * Réalisation IHM finale site
 * Vérification et tests ergonomie site
 * Documentation
 * Réalisation du dossier conception système
 * Réalisation dossier évaluation IHM et système
 * Préparation Soutenance

Sprint Planning
Fin du développement projet

Sprint retrospective

 * Plus
 * Travail équipe et complémentarité des ressources
 * Moins
 * Contraintes de temps
 * Phases de tests non formalisées

Sprint Backlog

 * Réalisation fonctionnalité système( Panier, Authentification,Compte restaurant)
 * Élaboration dossier conception IHM
 * Réalisation page site web selon IHM concrète

Sprint Planning

 * Réalisation Documentation finale
 * Phases Tests et Corrections

Sprint retrospective

 * Plus


 * Moins
 * Retard accumulé dans la réalisation système, certaines fonctionnalités ne pourront pas être developpées
 * Forge de travail hors service obligé de trouver une solution alternative : [git@bitbucket.org:Tetram/lubyb.git GIT]

Sprint Backlog

 * Maquettes IHM abstraite : page d’accueil, page de catégories, page de produit, page de panier, page de commande
 * Fonctionnalité de recherche de vin fini (recherche par nom, prix, marge de prix, type de vin) sans Hibernate
 * Créer un compte utilisateur (soit sous rôle de Admin, soit Client), supprimer l'utilisateur

Sprint Planning

 * Authentification de l'utilisateur (login + mot de passe), filtrage de droit d'accès aux ressources, gestion de session
 * Panier
 * Commandes
 * Compte Restaurant
 * Implémenter les pages web selon les maquettes IHM faites (JSP, CSS)
 * Finir les maquettes IHM et les modèles de tâches

Sprint retrospective
Moins:
 * Difficile d'intégrer le Client lourd dans le projet Maven
 * Annulation d'idée d'utiliser Hibernate pour la recherche

Sprint retrospective

 * Plus:
 * Tâches réparties entre les membres du groupe, tout le monde voit la vue globale du projet
 * Moins:
 * Organisation + respect des échéances + moindre exploitation de Trello
 * Bug Netbean + maven

Sprint retrospective
= Carnet de Bord =

Mardi 11 Decembre
Partie Documentation
 * Réalisation et Validation du dossier de conceptions
 * Mise en forme de l'IHM abstraite
 * Redéfinition des modèles de tâches ( Réaliser achat et Gestion Compte)
 * Choix et validation de la charte graphique
 * Début réalisation dossier conception système
 * Début réalisation dossier Tests et Montée en charge du système

Partie IHM
 * Réalisation version beta du site respectant le charte graphique ( Accueil, Catalogue Vin, Connexion, Création Compte)

Partie Système
 * Tests et Validation Panier
 * Réalisation Mise a jour automatique des données (MAJ du stock + Maj historique Commande)

Mardi 4 Decembre
Plus:
 * Debut d'interface (page d'accueil et liste des produits)
 * Mise en place du panier

Moins:
 * Mise en place de l'interface : plus long que prévu
 * Panier non optimisé

TODO:
 * Finir la page d'accueil (et faire le footer)
 * Finir la page liste des produit (ajouter filtres de recherche)
 * Optimiser le panier
 * Essayer de faire tourner un glassfish sur amazon webservice
 * Préparer une base de données externe

Mardi 27 Novembre
Plus: Moins:
 * Maquettes IHM abstraite finies : page d’accueil, page de catégories, page de produit, page de panier, page de commande
 * Fonctionnalité de recherche de vin fini (recherche par nom, prix, marge de prix, type de vin)
 * Créer un compte utilisateur (soit sous rôle de Admin, soit Client), supprimer l'utilisateur
 * Difficile d'intégrer le Client lourd dans le projet Maven
 * Annulation d'idée d'utiliser Hibernate pour la recherche

TODO:
 * Authentification de l'utilisateur (login + mot de passe), filtrage de droit d'accès aux ressources, gestion de session
 * Panier
 * Commandes
 * Compte Restaurant
 * Implémenter les pages web selon les maquettes IHM faites (JSP, CSS)
 * Finir les maquettes IHM et les modèles de tâches

Mardi 20 Novembre

 * Client Lourd opérationnel

Quan : Mise en place du système d'identification selon le type d'acteur
 * Ajout d'utilisateur : nom, prénom, login, mot de passe (chiffré)
 * Consulter la liste les utilisateurs
 * TODO :
 * Appel RMI à la méthode GetEncryptedPassword pour crypter le mot de passe avant d'envoyer au serveur
 * DeleteUser
 * Authentification

Soriya : Réalisation de la fonction de recherche par Filtre(s) Combiné(s)

Aurelien : Evolution des EJB pour la réalisation des catégories/types et des regions du vin

Christopher : Début de la réalisation du dossier de conception IHM
 * Etude des modèles de taches et des IHM abstraites
 * Réalisation des prototypes d'ihm semi concrète

All : Mise à jour des documents

Plus : -> -> Moins : -> ->

Mardi 13 Novembre

 * Client lourd : Mise en place la structure mais bug opérationnel (Maven)
 * Recherche Vin : Recherche par filtre non combiné ( exemple : VIN ou ANNEE, etc)
 * Prototype IHM : page d'accueil, catalogue. Accessible sur mockupBuilder
 * Aspect sécurité (authenfication, authorization) : auto-formation

Mardi 23 octobre
Dans le cadre du projet ECOM, on se restreint à utiliser Servlet pour modifier directement des EntityBean sans passer par JMS
 * Montrer la fonctionnalité AddVin, SearchVin et DeleteVin en mode JMS
 * Choix de méthode Session Bean sans JMS
 * Justification : JMS est utilisé dans le contexte serveur asynchrone où il y a beaucoup de requêtes à traiter en même temps.
 * Remplir product backlog

Mardi 16 octobre
Décision prise à la suite des difficultés rencontrées pour la configuration de Jonas au sein de l'IDE eclipse 
 * Changement du serveur d'application : Migration de Jonas vers GlassFish
 * Réalisation des tutoriaux sur la mise en route de l'EJB.

Mardi 9 octobre

 * Analyse des résultats du questionnaire
 * Fin rédaction cahier des charges
 * Relecture du cahier des charges
 * Début réalisation prototype EJB

Vendredi 5 octobre

 * Envoi du questionnaire lien
 * Rédaction du cahier des charges 4/8

Mardi 2 octobre

 * Formation Java J2E
 * Mise en place de la forge
 * Mise en place de JOnAS
 * Validation du Logo et de la charte graphique

Mardi 25 Septembre

 * Choix du sujet
 * Répartition des rôles
 * Création et début de la rédaction du cahier des charges 1/8
 * Conception d'un sondage 1/3
 * Prototypage de la charte graphique