Conception - Recommandation intelligente de films

From air
Jump to navigation Jump to search

Voici la fiche de conception du projet 'Recommandation intelligente de films'.

Page d'accueil du projet

Équipe

  • Rachex Coralie (Chef de projet - Scrum Master)
  • Niogret Edwin
  • Hattinguais Julian
  • Navarro Elsa
  • Dunand Quentin

Schéma de la structure de l'application

Choix des langages de programmation

  • Python : pour le back-end
  • AngularJS : pour le front-end
  • MySql : pour la base de données

Choix technologiques

  • TensorFlow : librairie open source pour l'apprentissage automatique, utilisant des graphiques de flux de données.
  • Keras : librairie de réseaux neuronaux de haut niveau, écrite en Python et capable de fonctionner au dessus de TensorFlow.
  • Flask : framework open-source de développement web en Python.

API en back-end

Pour utiliser pleinement l'API, il faut que l'utilisateur soit connecté car les données enregistrées en BD sont associées à l'id de l'utilisateur. Ceci permet à chaque utilisateur d'avoir ses données propres et de les conserver entre deux connexions.


Routes
Requête Route Description Permission
POST /auth/signup Création d'un compte utilisateur
POST /auth/login Connexion d'un utilisateur
/auth/logout Déconnexion d'un utilisateur
POST /api/updateMovies Met à jours la liste des films annotés par l'utilisateur L'utilisateur doit être connecté
GET /api/likedMovies/<string:opinion> Récupère en base de données, la liste des films que l'utilisateur à aimé si opinion="liked", pas aimé si opinion="disliked" ou alors tous les films si opinion="all". L'utilisateur doit être connecté
POST /api/likedMovie/<int:idMovie>/<int:isLiked> Ajoute en base de données, le film d'idMovie=idTMDB avec isLiked=0 si le film n'a pas été apprécié ou isLiked=1 si le film à été apprécié L'utilisateur doit être connecté
PUT /api/likedMovie/<int:idMovie>/<int:isLiked> Met à jours en base de données, le film d'idMovie=idTMDB avec isLiked=0 si le film n'a pas été apprécié ou isLiked=1 si le film à été apprécié L'utilisateur doit être connecté
DELETE /api/likedMovie/<int:idMovie> Supprime de la base de données, le film d'idMovie=idTMDB associé à l'utilisateur L'utilisateur doit être connecté
POST /api/train Lance l'entrainement du modèle avec les films annotés par l'utilisateur, présents en base de données. L'utilisateur doit être connecté
GET /api/prediction Lance une prédiction à partir du modèle de l'utilisateur et retourne une liste de recommandation de films. L'utilisateur doit être connecté
POST /api/popularity Lance la recherche de popularité sur Twitter et retourne une liste de films ordonnée par popularité décroissante et une seconde liste ordonnée par avis décroissant L'utilisateur doit être connecté