CAW1 2016 Projet de MHg, IJ

De Ensiwiki
Aller à : navigation, rechercher
Colocatr large black.png
Titre du projet Colocatr
Cadre Web 2AA

Équipe MHg, IJ
Encadrants Sébastien Viardot


Pitch

Colocatr™ est la meilleure plateforme de mise en relation de colocataires qui ait jamais existé sur l'autoroute de l'information du cyberespace. Colocatr™ est la plateforme parfaite pour exposer votre colocation (existante ou souhaitée), définir vos critères de recherche et trouver la nouvelle personne qui partagera votre appartement.

Grâce à Colocatr™, vous pouvez enfin trouver votre colocataire rêvé en un rien de temps. Consultez les millions de profils de nos utilisateurs générés aléatoirement ! Contactez-les pour en savoir plus ! Qui sait, vous trouverez peut-être la perle rare !

Le site vous permet de :

  • créer une annonce de recherche de colocataire,
  • proposer votre appartement en colocation,
  • feuilleter le catalogue d'annonces disponibles, si besoin avec un filtrage sur des critères plus ou moins précis : ville, âge des colocataires, date d'emménagement, etc.
  • demander une prise de contact avec la personne ayant d'une annonce personne ; votre adresse e-mail lui sera alors révélée, la personne vous contactera si elle le veut.
  • vous esclaffer devant les milliers de profils bidons hilarants générés aléatoirement

Cher angel investor, vous en conviendrez : Colocatr™ est évidemment le unicorn de l'année 2016. N'attendez plus pour investir !

Caractéristiques techniques

  • Architecture MVC
  • 2 rôles : visiteur non-inscrit, membre inscrit
  • Backend : Play, Hibernate sur Java 8
  • Frontend : Bootstrap un peu responsive
  • Tests unitaires et fonctionnels
  • Générateur aléatoire de données (Bootstrap.java)
  • Flux RSS : dernières annonces
  • Web service externe : Google Maps sur les annonces proposant un appart (si coords GPS remplies)

Installation

Assurez-vous d'avoir Java 8 et Play 1.3 (développé chez nous avec Play 1.3.4).

Tout d'abord il faut exécuter play deps (pour rapatrier le module secure notamment).

Lors de la première exécution de play run, une base de données bidon est générée. Ça met un peu de temps à générer (une minute maximum sur un ordinateur décent), donc pas de panique si la toute première requête met du temps. Les exécutions suivantes ne regénèreront pas la base. En cas de problème, pour recréer la base de données, supprimer le répertoire db. (En revanche, avec play test, la base est regénérée à chaque fois.)

Attention : les tests unitaires vident la base de données de test. Pour jouer avec le site après avoir lancé les tests, il est recommandé de refaire play run pour partir avec une base pleine.

S'amuser avec les profils

Il y a quelques profils non-aléatoires prédéfinis dans app/data.yml, chargés automatiquement. Le plus intéressant, si vous voulez vous logger, est celui de Jakob Heuschnupfen (pseudo: jakob, mot de passe: qwerty). Il a posé une annonce de colocation, et il a une notification de Amandine Dutrentehuit.

Les profils aléatoires sont générés avec des pseudos sur le modèle <prénomAscii><nombre> (par exemple natacha527) et leur mot de passe est pass<nombre> (par exemple pass527). Lorsque vous visitez la page d'un utilisateur, vous pouvez voir son nom d'utilisateur dans l'URL (par exemple http://localhost:9000/u/natacha527). Ainsi, vous pouvez vous authentifier comme l'un de ces profils, notamment pour jouer avec le système de notification de prise de contact.

Modèle

Colocatr classes.png

Cas d'utilisation

Ajout : Visiteur peut s'inscrire, évidemment...

Colocatr usecase.png

Screencast

Fourni dans l'archive (screencast.m4v). Actions montrées :

  • 0'00" page d'accueil
  • 0'16" liste d'annonces
  • 0'19" visiter une annonce standard
  • 0'27" filtrage des annonces par critères
  • 0'43" visiter une annonce avec partage d'appartement
  • 0'56" inscription
  • 1'03" renseignement des informations personnelles
  • 1'22" modification des informations personnelles
  • 1'37" création d'une annonce de recherche de colocataire (bon je ne connaissais pas la latitude/longitude de Grenoble par cœur...)
  • 2'20" flux RSS montrant notamment l'annonce fraîchement créée
  • 2'40" prise de contact de pepito avec jakob
  • 2'47" déconnexion
  • 2'50" connexion de jakob
  • 2'56" affichage des notifications (notamment celle de pepito)
  • 3'16" suppression du compte de jakob
  • 3'25" tentative de création de compte avec un pseudo déjà existant



Pistes d'évolution

  • Affecter d'autres membres du site à une même annonce de séjour. Par exemple, un groupe de 2 amis débarque dans une ville et cherche un troisième colocataire. Ce serait facile à implémenter étant donné le modèle choisi ; le plus dur serait de faire un front-end sympa pour cette fonctionnalité
  • Redimensionner les photos de profil uploadées par les utilisateurs. Actuellement on stocke les images brutes, il faudrait cropper l'image en carré puis la sauvegarder en 256x256 en jpeg 75% (par exemple) pour éviter que la BDD ne soit inutilement alourdie
  • Améliorer la responsivité. C'est déjà pas mal mais on pourrait encore améliorer la présentation pour les petits écrans