CAW1 2013 Projet de Mibord Nathalie et Boulle Laura

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

Équipe Laura Boulle et Nathalie Mibord
Encadrants Sebastien Viardot


Presentation du projet

Etudiants

Contexte

Ce projet entre dans le cadre du cours de conception d’application web enseigné en 2ème année d’alternance à l’ENSIMAG (INPG). Le demandeur est Sebastien Viardot, enseignant-chercheur à l’ENSIMAG.

Objectifs

Le projet consiste en la réalisation d’une application web. Le sujet est au choix des étudiants. Le projet doit comporter les éléments suivants :

    - Utilisation du framework play (Obligatoire)
    - Gestion des rôles des utilisateurs avec différents droits d’accès (Obligatoire)
    - Utilisation d’un web service (Souhaitable)
    - Partie du site réaliser avec l’outil GWT (Souhaitable)
    - Une version mobile de l’application (Optionnel)
    - Abonnement rss (Optionnel)

Description des fonctionnalités du site web

whereWeShare est une application web qui permet le partage d’avis sur des films et séries grâce à des commentaires. Les utilisateurs peuvent aussi réaliser des demandes de prêts de ces productions. Le site est destiné à une communauté restreinte en premier lieu. Exemple : Une classe d’étudiants, se connaissant les uns les autres, pour faciliter les prêts de productions.

Les utilisateurs doivent s’inscrire sur le site et ont différents droits selon leur profil :

    - Utilisateurs inscrits
    Un utilisateur inscrit a le droit d’ajouter un film ou une série au catalogue du site. Il peut
    aussi ajouter un commentaire aux productions présentes dans le catalogue.
    Le dernier avantage d’un utilisateur enregistré est de pouvoir réaliser une demande de prêt
    de l’une des productions présentes sur le site.
    - Utilisateurs non-inscrits
    Un utilisateur non inscrit à la possibilité de s’inscrire sur le site en ajoutant son email, son
    nom et son mot de passe.
    - Administrateur
    L’administrateur a tous les droits sur le site, notamment les droits de suppression des
    éléments en base de données (voir cas d’utilisation)

Spécification technique du site web

Définition des cas d'utilisations

UseCaseWhereWeShare.png

Diagramme de classe

DiagWhereWeShare.png

Contraintes sur la base de données

Les clés primaires sont les identifiants de chaque classe.

Nous avons rajouté des contraintes d’unicités sur certaines tables. En effet, la table MovieSerie étant identifié par l’id, un utilisateur pourrait entrer 2 fois le même film. Nous avons donc rajouté une contrainte sur la table pour qu’un row soit unique selon son titre et son type. De ce fait une série et un film peuvent avoir le même nom et une production ne peut pas être dupliquée en base de données.

Une contrainte d’unicité (user, movieSerie) a aussi été ajoutée sur les demandes pour qu’un utilisateur ne puisse pas demander deux fois la même production.

Conception du site web

Architecture logique de l’application web

L’architecture logique du logiciel nous permet de décrire l’organisation du système en sous- systèmes, couches, paquetages, classe et interfaces. En ce qui concerne le type d’architecture logique, le « Modèle-Vue-Contrôleur » nous permet de séparer le traitement des entrées, des sorties et des fonctionnalités principales du site web.

La partie « modèle » de notre architecture comporte les classes principales représentant les différentes fonctionnalités du site : User, Commentaires, Demandes et MovieSerie Elle effectue les actions engendrées par les demandes utilisateurs, au travers du « contrôleur » et les répercutes sur l’interface grâce à la partie « vue » de notre architecture.

La partie « vue » quant à elle, regroupe les classes correspondant à l’interface graphique (partie html). Elle se met à jour grâce aux informations données par la partie « modèle ».

La classe Controleur correspond à notre contrôleur, elle récupère les actions de l’utilisateur et les transfère à la partie qui les traite par la suite.

En conclusion, le modèle MVC nous semblait plus intéressant pour cette application web. Il permet d’afficher simplement différentes vue du site, mais aussi de simplifier la portabilité du logiciel sur plusieurs plateforme mais surtout de facilité l’évolution de l’application. Ce dernier élément était très important dans notre projet, dans le cas où nous aurions eu le temps de d’ajouter toutes les fonctionnalités au site.

Maquette du site

MaquetteWhereWeShare.png

Outils utilisés

Framework Play

Play Framework est un framework open source web qui permet d'écrire rapidement des applications web en Java. Il vise à apporter un outil simple et productif sur la machine virtuelle Java.

PlayWhereWeShare.png

Ce schéma expose les échanges entre l’application et la base de données au sein du framework play. Au niveau de la JVM, les objets ne sont pas persistants. Ils le deviennent au travers de la commande save() qui sauvegardent alors les données en BD. Pour récupérer les données de la BD vers l’application java, le framework propose la fonction find() qui récupère des informations persistance pour les mettre dans le gestionnaire d’entités.

Web Service

Le webservice du site IMDB est utilisé pour récupérer les informations sur les films et séries présents sur le site :

    - Affiche 
    - Synopsis
    - Acteurs
    - Réalisateurs

Source : http://imdbapi.org/

Flux RSS

Le flux RSS est un fichier XML qui peut être utilisé par des sites d'actualités. Il permet de présenter les dernières informations consultables en ligne sur le site.

La mise en place du flux RSS n'est pas aboutie.

Tests

Tous les cas d’utilisation peuvent être testés.

Tests supplémentaires :

    - Ajouter un film existant
    - Ajouter une série existante
    - Demander un film une deuxième fois
    - Rechercher une production étant le titre d’un film et d’une série
    - Rechercher une production qui n’existe pas
    - Inscrire un utilisateur sans email et sans mot de passe
    - Se connecter en n’étant pas inscrit
    - Supprimer un film : les commentaires et les demandes se suppriment aussi (admin)

Possibilité d’évolution

   - Ne pas être sensible à la casse durant les ajouts en base de données
   - Pouvoir faire des recherches approximatives (Ex : rechercher eve, resultat : revenge)
   - Ajouter la possibilité de demander un épisode particulier pour une série
   - Développer une application mobile
   - Terminer la mise en plce du flux RSS
   - Intégrer une partie en GWT
   - Formulaire de contact 
   - ...

Démonstration

Video 'screen cast' montrant les principales fonctionnalités de l'application: Fichier:DemoWhereWeShare.mp4