Difference between revisions of "Ecom-pushmyproject"

From air
Jump to navigation Jump to search
 
(11 intermediate revisions by 2 users not shown)
Line 78: Line 78:
 
|-
 
|-
 
| 27 Novembre au 11 Decembre || Fabien Eloy
 
| 27 Novembre au 11 Decembre || Fabien Eloy
  +
|-
  +
| 11 Decembre au 21 Decembre || Sylvain Vigier
 
|}
 
|}
  +
  +
=== '''Sprint 5''' : 11 Decembre au 21 Decembre ===
  +
  +
==== Sprint Backlog ====
  +
* Terminer le dossier de conception IHM: Fabien, Sylvain
  +
* Définir les scénarios de test IHM: Sylvain
  +
* Remplir la base de données pour les tests IHM: Sylvain
  +
* Finaliser l'IHM: Léopold, Fabien
  +
* Terminer le dossier de conception Système: Fabien, Léopold, Florian, Sylvain
  +
* Terminer le dossier d'évaluation Système: Fabien, Léopold, Florian, Sylvain
  +
* Gestion des connexions administrateurs par l'interface web: Florian
  +
* Gestion des validations de projets administrateur/mails: Florian
  +
* Convertisseur devise: Florian
  +
* Finalisation des problèmes de connexion ou compte client: Florian
  +
* Déploiement Amazon: Léopold
  +
  +
==== Sprint retrospective ====
  +
* Plus:
  +
** - Bonne répartition des taches
  +
** - Bonne communication
  +
** - Progression conséquente dans le projet
  +
  +
* Moins:
  +
** - Difficulté technique: changement d'outil svn (forge non fonctionnelle)
  +
** - Difficulté technique: encore des problèmes liés à Maven
   
 
=== '''Sprint 5''' : 27 Novembre au 11 Decembre ===
 
=== '''Sprint 5''' : 27 Novembre au 11 Decembre ===
Line 91: Line 118:
   
 
* Moins:
 
* Moins:
  +
** - Presque aucun daily standup
** -
 
   
 
=== '''Sprint 4''' :13 Novembre au 27 Novembre ===
 
=== '''Sprint 4''' :13 Novembre au 27 Novembre ===
Line 130: Line 157:
 
=== '''Sprint 2''' :16 Octobre au 30 Octobre ===
 
=== '''Sprint 2''' :16 Octobre au 30 Octobre ===
 
==== Sprint Backlog ====
 
==== Sprint Backlog ====
  +
* Développement des Entities Bean
  +
* Définition de la charte graphique
  +
* Définition de la structure du client lourd
   
 
==== Sprint retrospective ====
 
==== Sprint retrospective ====
Line 162: Line 192:
 
*A améliorer
 
*A améliorer
 
** - Rédaction du cahier des charges
 
** - Rédaction du cahier des charges
** - Répartition du travail
+
** - Répartition du travail par personnes
   
 
* Moins:
 
* Moins:

Latest revision as of 18:06, 18 December 2012

Projet ECOM

Logo PushMyProject

Présentation

Description :

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

Push My Project est un site d'investissements au sein de projets (complet ou participatif).

Le but de notre site d' e-commerce de vente de projets en ligne est de permettre aux entreprises d'investir sur des projets pour en tirer les bénéfices(financiers ou intellectuels).

Ceci permettrait un accès plus rapides au bénéfices pécuniaires intellectuels lorsque une entreprise souhaite investir en R&D, ou qu'elle souhaite investir sur un projet d'une autre entreprise.

Membres :

  • ELOY Fabien
  • LEVEQUE Florian
  • VIGIER Sylvain
  • DAUVERGNE Leopold

Contacts :

Enseignants

Mail du chef de projet

Mise en place du projet

Tutoriels

L'étape 1 du projet ECOM est l'installation de JBOSS sous Eclipse, pour cela, il suffit d'aller dans l'eclipse marketplace et d'installer JBOSS.

Une fois cela effectué, il faut créer un projet EJB.

Pour installer le serveur d'application JBOSS, nous avons suivi la procédure suivante: http://www.objis.com/formation-java/tutoriel-jboss-7-installation-arborescence-demarrage-arret-standalone-domain.html

Pour nous familiariser avec les EJB nous avons suivi le tutorial suivant: http://theopentutorials.com/examples/java-ee/ejb3/how-to-create-a-simple-ejb3-project-in-eclipse-jboss-7-1/

Nous avons pu ensuite commencer le développement du projet.

SVN

L'adresse SVN de notre repo est ici :

https://imag-forge.e.ujf-grenoble.fr:443/svn/pushmyproject

Veuillez notez que la forge fut inaccessible pendant plusieurs jours (un weekend fin novembre et quelque jours durant le mois de novembre).

Suivi de la méthode SCRUM

Pour suivre l'avancement des tâches de notre projet, nous utilisons TRELLO. L'adresse TRELLO de notre projet ECOM est la suivante : https://trello.com/board/projet-ecom/50619dc0c2157ca37509e110 . Les principales tâches sont disponible sur le TRELLO, certains tâches annexes (généralement petites) ne sont pas identifiées au sein du Scrum Planning mais ont bien étés effectuées lors des divers soirées et nuits passées sur le projet.

ScrumMaster

Nous avons choisi de mettre en place un système de ScrumMaster tournant, pour que chaque membre de l'équipe puisse avoir un meilleur apercu de la gestion de projet au fil du temps.

Le product backlog est disponible ici.

Durée Sprint

La durée d'un sprint a été fixée à deux semaines. Une durée trop courte serait une perte de temps pour l'équipe mais une durée trop longue pourrait retarder l'avancement du projet.

Periode ScrumMaster
2 Octobre au 16 Octobre Fabien Eloy
16 Octobre au 30 Octobre Sylvain Vigier
30 Octobre au 6 Novembre Vacances
6 Novembre au 13 Novembre Florian Lévêque
13 Novembre au 27 Novembre Léopold Dauvergne
27 Novembre au 11 Decembre Fabien Eloy
11 Decembre au 21 Decembre Sylvain Vigier

Sprint 5 : 11 Decembre au 21 Decembre

Sprint Backlog

  • Terminer le dossier de conception IHM: Fabien, Sylvain
  • Définir les scénarios de test IHM: Sylvain
  • Remplir la base de données pour les tests IHM: Sylvain
  • Finaliser l'IHM: Léopold, Fabien
  • Terminer le dossier de conception Système: Fabien, Léopold, Florian, Sylvain
  • Terminer le dossier d'évaluation Système: Fabien, Léopold, Florian, Sylvain
  • Gestion des connexions administrateurs par l'interface web: Florian
  • Gestion des validations de projets administrateur/mails: Florian
  • Convertisseur devise: Florian
  • Finalisation des problèmes de connexion ou compte client: Florian
  • Déploiement Amazon: Léopold

Sprint retrospective

  • Plus:
    • - Bonne répartition des taches
    • - Bonne communication
    • - Progression conséquente dans le projet
  • Moins:
    • - Difficulté technique: changement d'outil svn (forge non fonctionnelle)
    • - Difficulté technique: encore des problèmes liés à Maven

Sprint 5 : 27 Novembre au 11 Decembre

Sprint Backlog

  • Gestion de la connexion a une session
  • Mise en place de Sonar
  • Mise en place de Jmeter

Sprint retrospective

  • Plus:
    • -
  • Moins:
    • - Presque aucun daily standup

Sprint 4 :13 Novembre au 27 Novembre

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 projet par mot clefs
  • Créer un compte utilisateur
  • Résolution de divers bugs au niveau de l'IHM
  • Adaptation pour les écran à petite résolution

Sprint retrospective

Plus:

  • Possibilité de naviguer correctement au sein des projets
  • Compréhension correcte de maven

Moins:

  • Pas de temps a consacrer au projet
  • Beaucoup d'aspects sur lesquels nous aurons aimer passer plus de temps mais n'avons pas pu. Nous devons donc nous concentrer sur l'essentiel

Sprint 3 :30 Octobre au 13 Novembre

Sprint Backlog

Sprint retrospective

  • Plus:
    • - Faire des updates / Commit sur le SVN pour éviter les conflits
    • - Intégration totale de Maven
  • A améliorer:
    • - Arrêter les réunions le soir
    • - Les données à utiliser pour une retrospective
  • Moins:
    • - Tests des différentes pages
    • - Centraliser les sorties des sprints retrospectives

Sprint 2 :16 Octobre au 30 Octobre

Sprint Backlog

  • Développement des Entities Bean
  • Définition de la charte graphique
  • Définition de la structure du client lourd

Sprint retrospective

  • Plus:
    • - Prendre le temps de définir les contraintes associées au choix de développement
    • - Poser les algorithmes sur papier
    • - Utilisation de Google Drive / DropBox
  • A améliorer
    • - Utiliser un tableau pour la retrospective
    • - Ne pas mélanger les jar importés et les dépendances maven
  • Moins:
    • - Lieu du sprint retrospective
    • - Temps de débogage de la base de données

Sprint 1 : 2 Octobre au 16 Octobre

Sprint Backlog

  • Choix de Jboss comme plateforme.
  • Comprendre le fonctionnement des EJB.
  • Définition de l'architecture globale avec les choix des technologies utilisées.
  • Mise en place de la base de données MySQL.
  • Rédaction du cahier des charges.

Sprint retrospective

  • Plus:
    • - Mise en place de l’environnement de travail
    • - Travail en binôme
  • A améliorer
    • - Rédaction du cahier des charges
    • - Répartition du travail par personnes
  • Moins:
    • - Répartition du travail dans le temps
    • - Faire plus de réunions
    • - Gestion de version et Tests

Développement du projet

Vu que ce projet a un but d'apprentissage, nous avons essayé de poster différents tutoriels et liens vers les pages qui nous ont aidé à avancer dans le projet. Bien-sur ce n'est pas une liste exhaustive.

Maven

Tutoriaux

Installation de Maven: http://maven-guide-fr.erwan-alliaume.com/maven-guide-fr/site/reference/installation-sect-windows.html

Installation du plugin Eclipse: http://eclipse.org/m2e/download/

Convertir un Eclipse project en Maven Project

Step 1: Installer le plugin m2clipse dans Eclipse

Step 2: Installer Maven (l'installation est très Jboss like) à partir de l'archive suivante http://dl.free.fr/kxE5byRSd

Step 3a: Créer un chemin dans votre path pour pointer sur le /bin de maven. Dans une cmd, la commande mvn --version doit vous retourner quelque chose.

Step 3b: Dans les propriétés maven d'eclipse, faites pointer votre fichier de configuration vers celui du maven local.

Step 4: Faites un checkout du projet, faites un Run As > Mvn clean, Run As > Mvn install. Normalement il va télécharger de nombreuses dépendances. Il est indispensable d'avoir une connexion correcte pour éviter les fichiers corrompus.

Step 5: Votre projet devrait marcher, si jamais le client ne veut pas démarrer, ajouter les lignes suivantes (à adapter selon votre configuration) dans votre pom.xml:

<dependency>

<groupId>org.jboss.as</groupId>

<artifactId>jboss-as-ejb-client-bom</artifactId>

<version>7.1.1.Final</version>

<type>pom</type>

</dependency>

<dependency>

<groupId>org.jboss.as</groupId>

<artifactId>jboss-as-jms-client-bom</artifactId>

<version>7.1.1.Final</version>

<type>pom</type>

</dependency>

Mise en place de la base de données

Tutoriaux

Mise en place d'une base de données MySQL/Lien avec les ejb: http://theopentutorials.com/examples/java-ee/ejb3/how-to-create-ejb3-jpa-project-in-eclipse-jboss-as-7-1/

Génération des entity beans à partir de la base de données MySQL: http://www.tuesdaydeveloper.com/2009/11/creating-java-entity-beans-dynamically-from-database/

Solution choisie

Pour implémenter la base de données, nous avons choisi d'utiliser WAMP, qui fournit un serveur mysql ainsi que phpmyadmin pour gérer les bases de données.

Mise en place de la structure du projet

Entities beans

Session beans

Pattern DAO

Aspects Sécurité

Le chiffrage des mots de passe dans la base de donnée a été fait grâce à java security, en SHA-512.
Afin de sécuriser les communications de données sensibles sur le site, nous avons mis en place le protocole standard utilisé pour les transactions sur le web: https. Voici la démarche suivie:

1 - Ouvrir une invite de commande. Sous windows, la commande suivante crée un certificat ".keystore" dans le dossier courant.

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA

2 - Ajouter un "connector" ssl dans le fichier de configuration de JBoss: "standalone.xml". Le paramètre certificate-key-file désigne le certificat créé précédemment et le mot de passe est celui donné lors de sa création.

<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> 
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl name="ssl" password="mypassword" certificate-key-file="mypath\.keystore"/>
</connector>


Vous devriez alors pouvoir accéder au serveur JBoss en https à: https://localhost:8443/
Il reste à rediriger l'utilisateur du site vers cette connexion https.

3 - Configuration du web.xml dans le WebProject


http://docs.jboss.org/jbossweb/7.0.x/ssl-howto.html
http://docs.jboss.org/jbossweb/7.0.x/config/ssl.html

Deploiement sur Amazon EC2

Voici la page d'accueil d'Amazon.

Tests

Clif tutoriel. Après avoir fait des recherches sur clif, nous avons décidé de ne pas utiliser cet outil du fait de la documentation disponible pour mettre en place des tests, en effet, celle-ci est quasi inexistante et aucune librairie répertoriant tous les tests possibles est disponible.

Nous avons donc utilisé Jmeter qui nous donne des résultats tout à fait satisfaisant. Notamment grâce à ses plugins.

Sonar

Voici un petit tutoriel d'installation de Sonar rédigé par Leopold: http://air.imag.fr/mediawiki/images/8/8f/HowToInstallSonarEcom.pdf

Ensuite, nous avons suivi ce tutoriel pour configurer le plugin Sonar au sein d'Eclipse.