Développement d’une plateforme de recommandation d’associations étudiantes

Occurrences : 

2021

Nombre d'étudiants minimum: 

4

Nombre d'étudiants maximum: 

4

Nombre d'instances : 

2

Faisable à distance: 

Oui

 

Il est difficile pour les nouveaux Télécommiens de choisir parmi les nombreuses associations de l’école. L’objectif de ce projet est de construire une plateforme de recommandation qui les aidera à trouver celle qui leur correspond le mieux.
Scénario

Un étudiant se demande quelle association rejoindre. Il se connecte sur quelle-asso.telecom-paris.fr et répond à une série de questions. L’application détermine alors l’association qui lui correspond le mieux grâce à un algorithme de recommandation.

Préalablement, les membres des différents clubs et associations de Télécom auront répondu à l’ensemble des questions de la plateforme et renseigné les associations auxquelles ils appartiennent pour entraîner l’algorithme.

Elements à implémenter

Pour réaliser ce projet, les étudiants devront développer :

  • Une application web (le frontend) capable de gérer (2 personnes)
    • l’authentification des utilisateurs, si possible via le SSO Télécom (~3JH)
    • l’affichage des questions et la saisie des réponses (~8JH)
    • l’affichage de la recommandation d’association (~3JH)
    • la possibilité de suggérer de nouvelles questions (~4JH)
  • Une API (le backend) sécurisé (1 personne)
    • capable de gérer les autorisations des utilisateurs (~2JH)
    • permettant de récupérer les questions et de sauvegarder les réponses (~5JH)
    • communiquant avec une base de données pour stocker les utilisateurs, les questions et les réponses (~2JH)
  • Un algorithme de recommandation basé sur les réponses aux différentes questions (1 personne)

 

L’objectif de ce projet est de pouvoir être déployé en production pour être utilisé par les étudiants de l’école dès la rentrée prochaine. Une attention particulière sera apportée aux bonnes pratiques de DevOps, notamment :

  • flux de développement par feature-branch
  • relecture de code
  • mise en place de tests automatisés
  • déploiement régulier et automatique de l’application

Technologies à mettre en oeuvre

Le frontend sera en HTML/CSS/Javascript. L’utilisation d’un framework tel que React ou VueJS est possible.

Le backend sera au choix en NodeJS, PHP ou Python. L’utilisation d’un framework (Nest, Symfony ou Django) est également possible.

Pour l’algorithme de recommandation, les étudiants pourront utiliser toute bibliothèque qu’ils jugeront utile.

Les développements se feront suivant une méthodologie agile (Scrum) avec des cycles d’un ou deux jours. Au début de chaque itération, nous définirons ensemble les fonctionnalités à développer.