Conception - Recommandation intelligente de films: Difference between revisions
Line 12: | Line 12: | ||
= Schéma de la structure de l'application = |
= Schéma de la structure de l'application = |
||
La partie |
La partie back-end de l'application sera répartie sur deux serveurs Amazon, l'un pour notre base de données et l'autre pour notre API. Notre serveur de fichier est logé sur le même serveur que l'API car nous disposons uniquement de deux comptes Amazon AWT avec la version d’essai gratuite encore active. A l'avenir il faudrait reloger ce serveur de fichier sur un serveur propre et répliquer les serveurs pour mieux résister à la charge et aux pannes. |
||
[[Image:ConceptionSysteme.png|1000px|center]] |
[[Image:ConceptionSysteme.png|1000px|center]] |
Revision as of 09:54, 13 March 2017
Voici la fiche de conception du projet 'Recommandation intelligente de films'.
Équipe
- Rachex Coralie (Chef de projet - Scrum Master)
- Niogret Edwin
- Hattinguais Julian
- Navarro Elsa
- Dunand Quentin
Schéma de la structure de l'application
La partie back-end de l'application sera répartie sur deux serveurs Amazon, l'un pour notre base de données et l'autre pour notre API. Notre serveur de fichier est logé sur le même serveur que l'API car nous disposons uniquement de deux comptes Amazon AWT avec la version d’essai gratuite encore active. A l'avenir il faudrait reloger ce serveur de fichier sur un serveur propre et répliquer les serveurs pour mieux résister à la charge et aux pannes.
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.
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é |