CAW1 2015 Projet de Jean Pourroy, Paul Tardy et Alex Zimmermann

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet DemocrIT
Cadre Projet web
Page principale CAW1_Demonstration_Realisation

Équipe Jean Pourroy Paul Tardy Alex Zimmerman
Encadrants Sebastien Viardot


Présentation générale

Contexte

Dans le cadre de notre deuxième année à l'ENSIMAG, nous suivons un cours de Construction d'Applications Web. Ce cours aboutit à un projet de développement d'un site internet en équipe. Bien que de thématique libre, la réalisation de ce site est guidé par un certains nombre de contraintes techniques imposées, détaillées dans le cahier des charges.

Description générale

Notre projet se nomme DemocrIT. Le nom fait référence à la démocratie et aux technologies de l'informations. Il permet aux utilisateurs de débattre de façon organiser des textes qui sont débattus à l'Assemblée Nationale. DemocrIT est gérer par les administrateurs. L'ajout des différents débats sur les textes se fait via un des flux RSS du site de l'Assemblée Nationale.

Environnement de travail

Cette partie sert à décrire l'environnement et les technologies de développement utilisés pour la mise en oeuvre du site.

IDE

Nous utilisons la version 14 de IntelliJ Ultimate (gratuit pour les étudiants)

Système d'exploitation

Les développements se font aussi bien sur Mac et Linux que sur Windows.

Gestionnaire de version

Nous utilisons le gestionnaire de version git et nous hébergeons notre code sur un dépot Github privé (5 dépots privés sont disponibles gratuitement pour les étudiants de l'ENSIMAG).

Technologies utilisées

  • Play framework 1.3.x
  • Bootstrap 3
  • Java 7+

Cahier des charges

Pré-requis

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

Cas d'utilisation

Use Case.png

Données de tests

Les données de test sont les mêmes que les données chargées au moment du lancement de l'application en mode dev.

C'est un jeu de donnée au format .yml :

Tag(mvc):

   name:           MVC

User(bob):

   email:          bob@gmail.com
   password:       secret
   fullname:       Bob
   isAdmin:        true

Il crée une série d'utilisateurs, de posts, de tags et de commentaires qui permettent le test du site dès son premier lancement.

Installation

Éléments requis

- Java 1.7+

- Play Framework 1.3.x

  • Extraire l'archive reçu par mail.
  • Dans le repertoire "assemblee-nationale" taper la commande "play run"

L'application démarre en mode développement par défaut.

Avancement

Le projet devra comporter les éléments suivants :

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

...

  • Avancement :
    100 %
  • Mise en place de la structure du site
    100 %

.

  • Définition du modèle
    100 %
  • Définition des classes
    100 %
  • User
    100 %
  • Post
    100 %
  • Tag
    100 %
  • Comment
    100 %

.

  • Rédaction des tests unitaires
    100 %
  • User
    100 %
  • Post
    100 %
  • Tag
    100 %
  • Comment
    100 %
  • Implémentation des contrôleurs
    100 %
  • Job: SyncRSS récupération du contenu de l'assemblée nationale
    100 %
  • Authentication: class de contrôle d'authentification
    100 %
  • Définitions des routes et des controleurs
    100 %
  • Implémentation des controleurs
    100 %

.

  • Réalisation d'un fichier de données d'entrée : .yaml
    100 %

.

  • Gestion de l'addition de posts via le Flux RSS du site de l'Assemblée Nationale
    100 %

.

  • Livrables :
    100 %
  • Sources
    100 %
  • Documentation d'installation (cf. wiki)
    100 %
  • Tests unitaires
    100 %
  • Tests fonctionnels
    100 %
  • Scenarii
    100 %
  • Ensiwiki :
    100 %
  • Documentation
    100 %
  • Screencast
    100 %

Screencast

La vidéo de présentation de notre projet est disponible ici ! https://www.youtube.com/watch?v=gm4UqmGmLkw

Pour aller plus loin

Dans cette section, vous trouverez la liste des fonctionnalités prévues mais non développés au cours de la période de projet. Ces fonctionnalités prévues initialement n’ont pas été jugées prioritaire d’un point de vue académique, et n’ont pu être développés faute de temps.

  • La possibilité pour les utilisateurs de créer des post
  • Distinguer les votes d’intérêt où un vote positif signifie son intérêt pour le sujet, et les vote d'opinion où les utilisateurs pourraient voter "pour" ou "contre" une action prise ou un projet de loi.
  • Dynamiser les sources de données: pour l'instant le job "SyncRSS" recupère des informations depuis l'assemblée nationale via leur flux RSS. Il serait interessant que ce script récupère les informations d'une liste dynamique de datasource qui puissent être activées/désactivées/éditées par l'administrateur sans modifier le code.