CAW1 2014 Projet d'Etienne Cadic, de Jeremy Maritaz et de Victor Perrin

De Ensiwiki
Aller à : navigation, rechercher
Movo logo border.png
Titre du projet Movo
Cadre Projets WEB
Page principale CAW1_Demonstration_Realisation

Équipe Etienne Cadic Jeremy Maritaz Victor Perrin
Encadrants Sebastien Viardot



Presentation du projet

Description générale

Movo est un outil communautaire basé sur les web services Google Maps. L'idée principale est de fournir un outil d'organisation de voyage à destination (principalement) des étudiants. L'utilisateur peut créer des "Treks" sur lesquels il indique son itinéraire et le site lui fournit les informations adaptées.

Fonctionnalités

Le projet est divisé en deux parties : la création de Trek et l'aspect communautaire. Un utilisateur peut créer un Trek (équivalent à une nouvelle carte sur google maps) et ajouter des itinéraires composés de Steps (étapes). Selon les critères qu'il a renseignés, des informations utiles (todo) lui seront fournies en conséquence. Pour donner une idée générale, voici une liste (non exhaustive) des todos :

  • Moyen de transport (ligne de train, bus, covoiturage, avion, etc).
  • Hébergement (auberge de jeunesse, camping, hotel low-cost, couch surfing, etc).
  • Lieu intéressant (architecture, monument, musée, etc)
  • Sortie (Bar, boite de nuit, restaurant, etc)
  • Événement (Concert, Festival, etc)

L'utilisateur pourra choisir le type de todos qu'il veut et préciser des critères plus fins tels que :

  • La proximité (jusqu'à quelle distance autour du "Step" il veut voir les todos)
  • Le prix (le cas échéant)
  • La date (période pendant laquelle les informations l'intéresses, surtout utile pour les événements et moyens de transport).

Une fois qu'il a reçu ses informations, l'utilisateur peut choisir lesquelles l'intéressent en les associant à son trek . Il peut renseigner si il a réellement "tester" ce Todo (dormi dans cet hôtel, assister à ce festival, etc) ou pas encore.

La deuxième partie du projet consiste en l'aspect communautaire. Un utilisateur peut rendre son Trek public si il souhaite le mettre à disposition d'autres, il peut aussi laisser les autres membres modifier son Trek pour qu'ils lui proposent des Todos. A l'inverse, il peut aussi rechercher des itinéraires (selon certains critères) qui pourrait l'intéresser ou pour lesquels il pourrait proposer des idées.

Cahier des charges

Il s'agit d'un projet web pour l'Ensimag, un certain nombre de contraintes sont imposées :

  • Utilisation du framework Meteor : OK
  • Gestion de droits avec différents niveaux d'utilisateurs (obligatoire) : OK (Différents droits sur les Treks)
  • Utilisation d'un webservice : OK (Google Maps)
  • Version mobile de l'application : OK

Réalisation

Avancement

Le projet dans sa globalité étant conséquent, seules certaines fonctionnalités seront implantées dans le cadre de l'Ensimag. On se limitera à l'aspect communautaire du projet, c'est à dire qu'à la création d'un Trek, seuls les ToDos ajoutés par des membres seront proposés à l'utilisateur (pas de recherches d'informations extérieures).

En l'état actuel, les todos sont considérés comme un point d'intérêt dans leur globalité. C'est à dire qu'on ne fait pas de distinction entre les différents types d'informations (hotel, lieu, événements, etc). Lors de la création, modification ou consultation d'un trek, le site affiche simplement tous les todos à moins de 100km de chaque step sous la forme d'un marqueur sur la carte. Il est possible de consulter les détails de chaque todo en survolant ou cliquant sur le marqueur correspondant. Cela signifie aussi que, pour l'instant, il n'est pas possible d'affiner les critères de sélection des todos affichés.

Partie création de Trek

L'utilisateur doit pouvoir renseigner un itinéraire et recevoir des informations en conséquence :

  • Affichage de la carte (maps) une fois le Trek ouvert :
    90 %
  • Création d'itinéraire (maps) :
    90 %
  • Récupération de l'itinéraire sur le serveur (coordonnées géographiques, adresse ? ) :
    80 %
  • Récupération des ToDos en fonction des coordonnées :
    100 %
  • Affichage des ToDos :
    90 %

Partie communauté

L'utilisateur doit pouvoir accorder des droits sur ses Treks, rechercher des Treks public, etc

  • Gestion des utilisateurs, connexion, login/mdp :
    100 %
  • Gestion des droits sur les Treks :
    20 %
  • Outil de recherche de Treks :
    100 %
  • Gestion des commentaires et modifications des utilisateurs sur les Treks des autres :
    10 %

L'utilisateur doit pouvoir ajouter des ToDos dans la base de donnée :

  • Recherche des ToDos existants
    0 %
  • Gestion des droits sur les Todos :
    0 %
  • Formulaire d'ajout de ToDo
    100 %
  • Formulaire de modification de ToDo existant
    0 %
  • Ajout du ToDo dans la base de donnée
    100 %

Base de données

La base de donnée est implémentée directement par Meteor avec MiniMongo (version simplifiée de MongoDB). Le schéma ci dessous décrit l'état actuel de la base de donnée de Movo : BDD Movo - BDD.png

Cas d'utilisation

Voici les différents diagrammes d'utilisation dans l'état d'avancement actuel du projet :

Utilisation globale

BDD Movo - DCU.png

Création et modification de trek

Seul un utilisateur connecté peut créer ou modifier un trek. Un administrateur ne pouvant ici rien faire de plus, il n'est pas représenté. BDD Movo - DCU - Trek.png

Création de todo

Même remarque que précédemment. BDD Movo - DCU - Todo.png

Installation et aperçu

Site en ligne

Le site dans son état actuel est déployé sur les serveurs de meteor et accessible à l'adresse suivante : http://movo.meteor.com

Screencast

Voici une vidéo montrant l'utilisation du site : http://www.youtube.com/watch?v=5XAxIwydsCQ&feature=youtu.be

Installation de Meteor et les modules complémentaires

Pour pouvoir héberger en local le projet, il est nécessaire d'installer Meteor ainsi que quelques modules complémentaires.

Installation de Meteor

Exécuter la commande suivante :

$ curl https://install.meteor.com/ | sh

Installation de NodeJs

NodeJs est indispensable pour le fonctionnement de Laika

Sous ubuntu, il faut passer par un ppa particulier :

$ sudo apt-add-repository ppa:chris-lea/node.js
$ sudo apt-get update

Ensuite il faut simplement installer NodeJS :

$ sudo apt-get install nodejs

Installation de Npm

NodePacketManager permet d'ajouter des packages à NodeJS (tel que Laika).

$ sudo apt-get install npm

Installation de Laika

PhantomJs est un package de NodeJS nécessaire au bon fonctionnement de Laika. Laika est un module de test pour Meteor utilisé par Movo. Pour l'installer il suffit de faire :

$ sudo npm install -g phantomjs
$ sudo npm install -g laika

Installation de Meteorite

Meteorite est un gestionnaire de package pour Meteor. Il s'installe aussi via npm :

$ sudo npm install -g meteorite

Installation du projet Movo

La première étape est de récupérer l'archive du projet : Fichier:Movo.tar.gz Ensuite il faut la décompresser dans le dossier voulu, le dossier Movo correspond à la racine du projet.


Installation des packages Meteor

Pour fonctionner, Movo utilise certains packages de Meteor qu'il faut rajouter dans le projet. Il faut donc effectuer les commandes suivantes à la racine du projet. En fonction de votre configuration, il peut être nécessaire d'installer les packages via sudo (simplement rajouter sudo avant les commandes).

Iron-router

Iron-router permet de gérer le routage entre les différentes pages du projet, il s'installe via meteorite :

$ mrt add iron-router

Moment

Moment est un package permettant de gérer le temps (ex : depuis combien de temps une action a été effectué) dans Movo.

$ mrt add moment

User-status

User-status permet de gérer des utilisateurs.

$ mrt add user-status

GoogleMaps

Package permettant d'intégrer l'api GoogleMaps à Movo

$ mrt add googlemaps

Lancement et accès à Movo

Une fois tout installé, il faut lancer Meteor (toujours à la racine du projet) :

$ meteor

Ensuite Movo est accessible à l'adresse : http://localhost:3000

Quelques treks sont ajoutés à la base de données au démarrage du serveur. La plupart sont vides mais le trek "France Backpacking" permet de visualiser un trek avec des steps, une description et des photos associées (ainsi qu'un nombre de hitchhikes). Aucun todo n'est ajouté de base, le mieux est donc d'en créer un et de créer un trek à proximité (100km) pour tester ou plus simplement de créer un todo à proximité d'une des steps du trek "France Backpacking".