CAW1 2016 Projet de Thomas BIANCHINI et Julien SERGENT

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet SHM
Cadre Ensimag Projet Web 2A Alternant

Équipe Julien Sergent Thomas Bianchini
Encadrants Sébastien Viardot


Présentation générale

Contexte

Ce projet s'inscrit dans la continuité des cours de construction d'application WEB proposée par l'Ensimag aux étudiants de deuxième année alternants. Il s'agit de créer une application dont le choix du thème nous a été confié. Bien que le sujet soit libre, le cadre et le cahier des charges (définis ci après) était imposés.

Description du projet

Salle Hall Manager est une application permettant à des gérants de salle de gérer leur planning de cours et de visualiser simplement les membres inscrits pour chaque cours afin d'organiser leur journée ainsi que l'attribution de leur staff aux cours. Les membres quant à eux peuvent s'inscrire à des cours et planifier leur semaine d'entrainement.

Cahier des charges

Le projet devra comporter les éléments suivants :

  • Utilisation d'un framework : play utilisant le patron modèle-vue-contrôleur
  • Gestion des rôles avec des utilisateurs différents ayant des droits et des rôles différenciés
  • Site adapté à plusieurs terminaux dont une version mobile (Bootstrap)
  • Mise en place de jeux de tests unitaires : pour tester la partie modèle et contrôleur.
  • Souhaitable : Mise en place de jeux de tests fonctionnels avec selenium.
  • Souhaitable : utilisation webservice / flux RSS

Le cahier des charges que nous nous sommes fixés :

  • Créer des comptes membres, salle
  • Se connecter en tant que membre, salle
  • Se déconnecter
  • Affichage de planning différents en fonction de l'utilisateur
  • Salles :
    • Créer, modifer, supprimer des cours
    • Afficher l'ensemble des cours proposés
    • Poster un tweet à chaque création de cours
  • Membres :
    • S'abonner, se désabonner d'une ou plusieurs salles
    • S'inscrire, se désinscrire des cours

Cas d'utilisation

SMH uses cases.png

Tests & validation

Selenium

Test sur les connexions des utilisateurs et des salles avec les bonnes et mauvaises données de connexions.
(On a pas put tester la création de compte pour les salles et les utilisateurs du faite qu'il y a un problème de prise en charge de la commande "sendKeys" fonctionnel avec selenium IDE 2.9.1)
Selenium IDE 2.9.1 (addon firefox): [1]

  • Fichier concernée par ce probléme :
    • /test/selenium/createMember.html
    • /test/selenium/createRoom.html
    • /test/selenium/createExistingMember.html
    • /test/selenium/createExistingRoom.html

Test sur l'ajout et la suppression de salle à partir d'un compte utilisateur.

JQuery

  • Test du model cours :
    • ajout d'un nouveau cours en base
    • récupérer un cours en base
    • ajout de membre dans un cours
    • test sur la capacité d'un cours


  • Test du model salle :
    • création d'une nouvelle salle en base
    • se connecter en tant que salle
    • gestion de la duplication de salle
    • ajouter un cours pour cette salle
    • récuperer un ou tous les cours de cette salle


  • Test du model user :
    • création d'un nouveau membre en base
    • se connecter en tant membre
    • ajouter ou supprimer un salle pour un membre
    • vérification de la présence des membres du cotés au niveau des salles
    • enregistrement dans un cours


  • Test Twitter :
    • test de poster un tweet (Ce test à était mis en commentaire du faite qu'il y a une limitation sur le nombre de tweet posté sur un intervalle de temps, de ce faite après un grand nombre de tweet le test ne passe plus). Les tweets sont postés sur le compte @Sport_Hall_Mana[2].

Environnement de développement

Technologies utilisées

  • Java
    • Play Framework
    • twitter4j (Webservice API Twitter)
  • Front End
    • Bootstrap 3.0
    • Fullcalendar (API de calendrier)
    • JQuery
  • BDD
    • JPA SQL
  • Workflow
    • Git pour le versionning
    • GitLab (issues + pull requests)
  • Selenium
    • Selenium IDE 2.9.1 (addon firefox): [3]

Installation

  • Récupérer l'archive ci après
  • Dézipper
  • [OPTIONNEL] Si vous ne possédez pas les commandes suivantes : npm, bower
    • Installer NodeJS[4] -> bower[5] (npm install -g bower)
  • Ouvrir votre terminal préféré
  • Se rendre dans le répertoire app/public et installer les dépendances front-end "bower install"
  • retourner dans le répertoire app/
  • installer les dépendances du projet : "play dependencies"
  • lancer le projet : "play run"
  • le projet est lancé et accessible en local [6]

Screencast

Les fichiers ci dessous sont une démonstration de l'utilisation de l'application via un enregistrement vidéo. [7]

Sources

Sources