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

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet Prometheus
Cadre Projet web

Équipe Jean Pourroy [mailto:paul.tardy@ensimag.grenoble-inp.fr Paul Tardy Alex Zimmerman
Encadrants Sebastien Viardot


1 - Présentation générale

1.1 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.

1.2 Genèse

Notre projet se nomme Prometheus. Le nom est la traduction anglaise du dieu grec promethée qui a volé le savoir divin. Prometheus est un site web permettant à des utilisateurs de partager des cours et des exercices.

1.3 Cahier des charges

PROMOTEUS est un site web destiné à permettre à des personnes (en particulier des étudiants ou des professeurs) le partage et l'amélioration de cours. Pour pouvoir voir ou mettre en ligne un cours, un utilisateur doit être inscrit au site. Une fois connecté, le membre peut créer un groupe (dont il devient alors le manager). D'autre membres peuvent s'abonner par la suite à ce groupe afin de pouvoir voir les cours qui y sont publiés.

1.3.1 Gestion des cours

Un membre abonné à un groupe peut ajouter des cours à ce groupe. De plus n'importe quel membre d'un groupe peut éditer un cours appartenant au groupe où il est abonné. Les cours sont répertoriés par matière et un cours est structuré de la façon suivante :

  • chapitres (possède un titre)
    • sections (possède un intitulé)
      • sous-sections (possède un intitulé et un contenu)

1.3.2 Gestion des exercices

En plus de pouvoir créer des cours, les membres du site peuvent créer des exercices et faire un lien entre un exercice et une section d'un cours. Un exercice est caractérisé par son énoncé et une liste de questions avec leurs solutions éventuelles. Les exercices et les solutions peuvent être édités par les personnes du groupe.

1.3.3 Gestion des groupes

Lorsqu'un membre s'abonne à un groupe, il doit attendre la validation du manager pour pouvoir voir, ajouter et éditer des cours de ce groupe. Seul l'admin du groupe peut supprimer un cours ou un exercice. Un membre peut se désabonner d'un groupe et un manageur peut supprimer un membre d'un groupe.

1.4 Éléments techniques à intégrer

Le projet devra comporter les éléments suivants :

  • Utilisation d'un framework : play(conseillé) utilisant le patron modèle-vue-contrôleur (Play ou Symfony) ou modèle-vue-modèle (meteor)
  • Gestion des rôles avec des utilisateurs différents ayant des droits et des rôles différenciés (2 rôles au minimum)
  • Site adapté à plusieurs terminaux dont une version mobile (par exemple en utilisant 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 des technologies de type selenium.
  • Souhaitable : utilisation webservice (cf. https://code.google.com/intl/fr/apis/language/translate/v2/getting_started.html)
  • Optionnel : abonnement rss
  • Optionnel : partie du site en gwt ou au moins avec un framework type smartclient


2 - Réalisation

2.1 Modélisation

2.1.1 Cas d'utilisation

2.1.2 Diagramme entités-associations

2.2 Environnement de développement

Nous utilisons tout les 3 le même environnement de développement

2.2.3 IDE

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

2.2.4 Système d'exploitation

Linux est le système d'exploitation utilisé

2.2.5 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).

2.3 Technologies utilisées

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

2.4 Fonctionnalités

2.5 Identité graphique

2.6 Données de tests

3 - Avancement

4 - Installation et aperçu

4.1 Installation

Éléments requis

- Java 1.7+

- Play Framework 1.3.x

Éléments conseillés

Installation

5 - Pour aller plus loin

5.1 Fonctionnalités non développées

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.

5.3 Améliorations envisageables