CAW1 2015 Projet de Fayçal Benaziz et Alexis Poncet

De Ensiwiki
Aller à : navigation, rechercher
LogoCM.png
Titre du projet Campus Mixeur
Cadre Projet Web

Équipe Fayçal Benaziz Alexis Poncet
Encadrants Sébastien Viardot


Présentation du projet

Campus Mixeur est un réseau social pour les étudiants qui veulent entreprendre. Le but est d’aider les étudiants de cursus différents à se rencontrer afin qu’ils réunissent leurs compétences et entreprennent ensemble.

Généralement lorsqu’il s’agit de lancer une start-up il faut une équipe pluridisciplinaire, de la finance à la communication, de la gestion au marketing, de l’informatique au juridique, et payer des professionnels coûte cher alors que toutes ces compétences sont présentes sur les campus !

Seulement, il est parfois difficile de rencontrer des étudiants de cursus differents, souvent éloignés géographiquement, qui pourraient être intéressés par l’aventure. Nous souhaitons donc faciliter ces contacts en développant une application web où chaque étudiant pourra publier son projet et les compétences qu’il recherche et où les étudiants qui n’ont pas forcément d’idées pourront trouver le projet qui leurs correspondent.

Campus Mixeur vise ainsi à développer l’entrepreneuriat étudiant et à favoriser l’insertion professionnelle des jeunes en leur permettant de se créer leur premier réseau professionnel pendant leurs études.

Cahier des charges

Ce cahier des charges définit les besoins pour la plate-forme informatique Campus Mixeur.

La plate-forme informatique permettra aux étudiants de :

  • Soumettre un projet ;
  • Proposer ses compétences ;
  • Dialoguer avec d’autres membres.

Les fonctionnalités issues de ce document peuvent être amenées à évoluer.

Fonctionnalités

Campus Mixeur est ciblé sur 3 fonctionnalités de base :

  • Proposer son projet ;
  • Gérer son projet ;
  • Rejoindre un projet.

Pour être en mesure de réaliser ses fonctions, il devra permettre de :

  • S’authentifier ;
  • Éditer son profil ;
  • Effectuer une recherche personnalisée ;
  • Tchatter avec d’autres utilisateurs ;
  • Paramétrer les droits d’accès au projet.

Utilisateurs

Il existe trois types d’utilisateurs :

  • Le responsable communication : publication d’articles ;
  • L’utilisateur porteur de projet : soumet et gère son/ses projet(s) ;
  • L’utilisateur standard : suggère ses compétences et rejoins des projets.

Cas d'utilisation des différents acteurs

Responsable Communication

  • Publication d'un article ;
  • Modification d'un article ;
  • Suppression d’un article.

Porteur de Projets

  • Soumission d’un projet :
    • Soumission d’un nouveau projet.
  • Gestion d’un projet :
    • Ajout de la présentation du projet ;
    • Modification de la présentation du projet ;
    • Suppression de la présentation du projet ;
    • Ajout des compétences recherchées ;
    • Modification des compétences recherchées ;
    • Suppression des compétences recherchées ;
    • Ajout d’une vidéo illustrant le projet ;
    • Suppression d’une vidéo illustrant le projet ;
    • Ajout de photos ;
    • Suppression d’une ou des photos ;
    • Ajout des membres de l’équipe ;
    • Modification des membres de l’équipe ;
    • Suppression des membres de l’équipe ;
    • Publication d'articles ;
    • Modification d'articles ;
    • Suppression d’articles.

Utilisateur standard

  • Ajout d'une photo de profil ;
  • Modification de la photo de profil ;
  • Suppression de la photo de profil ;
  • Ajout d’une brève description de ce que l’utilisateur recherche comme projet ;
  • Modification de la brève description de ce que l’utilisateur recherche comme projet ;
  • Suppression de la brève description de ce que l’utilisateur recherche comme projet ;
  • Ajout de compétences ;
  • Modification de compétences  ;
  • Suppression de compétences ;
  • Ajout de son cursus académique ;
  • Modification de son cursus académique ;
  • Suppression de son cursus académique ;
  • Ajout de son expérience professionnelle ;
  • Modification de son expérience professionnelle ;
  • Suppression de son expérience professionnelle ;
  • Ajout de ses centres d’intérêts ;
  • Modification de ses centres d’intérêts ;
  • Suppression de ses centres d’intérêts ;
  • Recherche personnalisée ;
  • Enregistrement ;
  • Connexion ;
  • Déconnexion ;
  • Suppression son compte.

Technologies utilisées

Nous avons décidé d'établir une preuve de concept (PoC) de Campus Mixeur pour un éventuel lancement par la suite.

Play Framework 2 : Play2.png

C'est pourquoi nous avons opté pour la technologie Scala accompagnée de Play Framework 2. Ce fut pour nous une grande première et pour ne rien vous cacher cela faisait bien longtemps que nous n'avions pas appris un nouveau langage de programmation. Le scala en web est particulièrement utile dans le sens où le langage revient aux fondamentaux du web (contrairement à Java), se basant uniquement sur le principe de transactions RESTful.


  • Côté Serveur :

Hibernate/JPA : Hibernate.png

Afin de communiquer avec la base de données, nous sommes parti sur la technologie Hibernate (ORM) au lieu d'utiliser l'ORM natif de play 2 (SORM). Là aussi ce fut nouveau pour nous deux mais nous avons avons justement profiter de ce projet pour en faire pleinement la connaissance! Nous avons pu en découvrir un peu plus sur cet environnement et son langage intégré HQL.


  • Côté Client :
    • JQuery : JQuery.gif

JQuery reste la référence dans le domaine de l'évènementiel web côté client et il nous est donc apparu comme une évidence de réutiliser ce framework.

    • AngularJS : Angular.jpg

Le petit protégé de Google ! On en entend parler beaucoup de ce smartclient et ce n'est pas pour rien ! Couplé à de l'AJAX, AngularJS permet de réaliser de très belles choses. Ce fut aussi une première fois pour nous avec ce framework.


Bootstrap : Bootstrap.png

Nous avons aussi utilisé bootstrap afin d'améliorer le CSS. Cependant nous avons encore des progrès à effectuer avec ce framework.

Modèle de données

Diagramme de classes

Diagramme de classes Campus Mixeur(2).png

Validation

Une batterie de tests est fournie avec l'archive du projet Campus Mixeur. Pour lancer les tests :

  • Aller à la racine du projet et exécuter la commande : activator test

Jeux de Tests unitaires : JUnit

Validation du Modèle

Nous avons crée un fichier de tests unitaires par classe du modèle. Nous y retrouvons une méthode de test pour chaque attribut.

Nous retrouvons principalement la création, la modification et la suppression d'objet.

Voici les fichiers réalisés spécifiquement pour les tests unitaires (du modèle) fournis :

  • ArticleTest.scala
  • BasicSkillTest.scala
  • PhotoTest.scala
  • ProjectManagerTest.scala
  • ProjectTest.scala
  • RespoCommTest.scala
  • SkillTest.scala
  • StudentTest.scala

Validation des Contrôleurs

Nous avons réalisé un unique fichier de test qui vérifie à la fois la table de routage mais aussi les actions des différents contrôleurs, nommé RoutingSpec.scala.

Au total ce n'est pas moins d'une soixantaine de tests unitaires.

Jeux de Tests fonctionnels : Selenium

Malheureusement nous n'avons pas pu mettre en place des jeux de tests fonctionnels. C'est vraiment dommage car c'est le seul point manquant de ce projet (malgré l'envie et les nombreuses recherches sur internet infructueuses!).

Avancement

Fonctionnalités

Généralités

Enregistrement

100 %

Connexion

100 %

Déconnexion

100 %

Suppression son compte

0 %

R.A.S.

Recherche personnalisée

0 %

R.A.S.

Responsable Communication

Publication d'un article

100 %

Modification d'un article

0 %

R.A.S.

Suppression d'un article

0 %

R.A.S.

Porteur de Projets

Soumission d’un nouveau projet

20 %

Un bon début à été fait mais cela reste trop peu pour être présentable.

Gestion d’un projet

0 %

R.A.S.

Utilisateur standard

Ajout d'une photo de profil

100 %

Modification de la photo de profil

100 %

Suppression de la photo de profil

0 %

R.A.S.

Ajout d’une brève description de ce que l’utilisateur recherche comme projet

100 %

Modification de la brève description de ce que l’utilisateur recherche comme projet

100 %

Suppression de la brève description de ce que l’utilisateur recherche comme projet

100 %

Ajout de compétences

100 %

Modification de compétences

50 %

Gestion de Angular JS difficile pour réaliser ce traitement.

Suppression de compétences

100 %

Ajout de son cursus académique

100 %

Modification de son cursus académique

100 %

Suppression de son cursus académique

100 %

Ajout de son expérience professionnelle

100 %

Modification de son expérience professionnelle

100 %

Suppression de son expérience professionnelle

100 %

Ajout de ses centres d’intérêts

100 %

Modification de ses centres d’intérêts

100 %

Suppression de ses centres d’intérêts

100 %

Tests

Tests unitaires

100 %

Tests fonctionnels

100 %

Tests Selenium

0 %

Il manque de la documentation vis-à-vis de Play 2 et de Selenium. Nous avons lu qu'avec un javascript trop volumineux, les tests selenium ne s'exécutaient pas. Le problème vient peut-être de là... à voir en profondeur.

Documentation

Installation

Pour installer Campus Mixeur:

  • Télécharger le framework Play sur le site officiel (version 2.3.9 conseillée) accompagné de activator.
  • Mettre activator dans vos variables d'environnement.
  • Télécharger l'archive du projet sur Dropbox.
  • Extraire l'archive.
  • Se placer dans la racine du projet.
  • Lancer la commande activator run ou activator test.

Initialisation de la base de données

L'archive fourni un fichier SQL nommé "insert. sql". Lancer le script dans n'importe laquelle de vos bases.

Cependant Attention! Selon la base que vous utilisez, les drivers peuvent être différents. Pour cela, vérifiez la configuration de votre base de données, ainsi que celle de l'application (fichier de configuration se trouvant dans conf/application.conf).

Le fichier fourni contient les trois rôles. Vous êtes libres d'en ajouter par vous-même depuis l'écran administration de votre base de données.

Lancement de l'application

Ouvrer un navigateur (si possible récent) et aller à l'adresse http://localhost:9000.

Vous êtes alors libre d'utiliser Campus Mixeur comme bon vous semble!

Pour plus d'informations, se référer au screencast ci-dessous.

Screencast

https://drive.google.com/file/d/0BwLnA7AxEyq8cVMtUTZkb1I5Qnc/view?usp=sharing

Et pour le fun, on vous propose le bétisier de la vidéo :

https://drive.google.com/file/d/0BwLnA7AxEyq8RWpSRl9TSVREdk0/view?usp=sharing

Bonne navigation !