CAW1 2017 Projet de Mickael BRUNEL et Loïc PAULETTO

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet Next Power
Cadre Appli web

Équipe Mickael Brunel Loïc Pauletto
Encadrants Sebastien Viardot


Présentation du projet

Description générale

Ce projet s'inscrit dans la continuité des cours de construction d'application WEB proposés par l'Ensimag aux étudiants alternants de deuxième année. 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) étaient imposés.

Description du projet

Next Power est une application web permettant à des personnes de créer et de rejoindre des activités sportives.

Cahier des charges

Le projet devra comporter les éléments suivants :

  • Utilisation de l'un des frameworks : django 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 (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.
  • Mise en place de jeux de tests fonctionnels avec des technologies de type selenium.
  • 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 avec un framework type smartclient

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

  • Utilisateur :
    • Inscription
    • Authentification
  • Membre :
    • Création d'une activité
    • Désinscription à une activité
    • Participation à une activité
    • Ajouter des commentaires
    • Modifier son compte
  • Créateur :
    • Modification de ses activités
    • Suppression de ses activités
  • Admin :
    • Suppression des activités
    • Suppression des personnes
    • Suppression des commentaires
  • Utilisation d'api :
    • maps pour visionner les adresses
    • streetlayer pour valider les adresses des activités
  • Optionnel :
    • Flux rss pour les activités

Le cahier des charges a été réalisé à 100%. La partie optionnelle n'a pas été réalisée.

Cas d'utilisation

Brunel uses cases.png

Modèle conceptuel de données

Brunel pauletto mcd.png

Le modèle conceptuel de données et les cas d'utilisation ont été effectués à l'aide de la technologie plantUML

Installation

La documentation pour l'installation se trouve dans le fichier README.md présent à la racine du projet

Tests

Une intégration continue à été mise en place (voir le fichier .travis.yml à la racine du projet). Deux types de tests ont été mis en place. Les tests sont lancés avec la commande python manage.py test La totalité des tests est effectuée dans les fichiers tests.py pour chaque type d'entité.

Tests Unitaires

Les tests unitaires ont été effectués avec les tests unitaires standards de django.

Tests fonctionnels

Les tests fonctionnels sont effectués via Selenium. Ils sont placés dans des classes différentes de ceux des tests unitaires.

Scénario d'usage

Les différents scénarios d'usages sont implicites (inscription, participation, création etc). Ils n'ont donc pas été modélisés.

Choix techniques

Nous avons décidé d'utiliser Django pour les raisons suivantes :

  • Nous avions déjà manipulé Play dans un autre projet, nous voulions donc découvrir de nouvelles technologies.
  • Le framework Django est de plus en plus utilisé dans le monde professionnel c'était donc un bon moyen de le prendre en main.

Nous avons suivi le modèle standard de Django : MVC. Ce modèle nous semblait être intéressant. De plus, nous avions déjà utilisé REST pendant les TPs.

Nous nous sommes donc rendu compte que Django était un framework complet pour développer n'importe quel type de site n'ayant pas de contraintes excessives (nombre de requêtes élevées par exemple).

Screencast

Brunel screen1.png

Brunel screen2.png

Brunel screen3.png

Brunel screen4.png

Brunel screen5.png

Brunel screen6.png

Brunel screen7.png

Brunel screen8.png

Brunel screen9.png

Brunel screen10.png