diff --git a/backend/src/controllers/recommendation.js b/backend/src/controllers/recommendation.js
index 2d965dc1db5637a2aee38a54ab32d363156afe20..9684f329ca20ac944eb0c287a21baad5121938c6 100644
--- a/backend/src/controllers/recommendation.js
+++ b/backend/src/controllers/recommendation.js
@@ -44,6 +44,14 @@ function recommendationForUser(user_login) {
     for (let i = 0; i < authors.length; i++) { 
         fav_authors = authors[i][0]; //recuperer seulement l'auteur, pas le reste
     }
+    let actors = getAllElements(seen, getActors).slice(0,3);
+    for (let i = 0; i < actors.length; i++) { 
+        fav_actors = actors[i][0]; //recuperer seulement l'acteur, pas le reste
+    }
+    let styles = getAllElements(seen, getStyles).slice(0,3);
+    for (let i = 0; i < styles.length; i++) { 
+        fav_styles = styles[i][0]; //recuperer seulement le style, pas le reste
+    }
 
 
 
@@ -78,10 +86,9 @@ function comparerLignes(a, b) {
  * renvoie une liste d'auteurs, avec leur nombre d'apparition dans la liste des films vus par un utilisateur, puis leur note moyenne
  *
  * @param {Movie[]} movies - Liste de film vus par un utilisateur.
- * @param {string(Movie)} recupElement - Fonction qui recupere un element d'un film (pour generaliser allAutors à allElement).
  * @returns {[[string, Number, Number]]} - La liste des auteurs.
  */
-function getAllAuthors(movies, recupElement){
+function getAllAuthors(movies){
     let authors = [[]];
     //premier indice = couple auteur/nombre d'apparition/moyenne notes films, 2e indice: 0 auteur, 1 nbr apparition, 2 mpyenne films
     for (let i = 0; i < seen.length; i++) {
@@ -107,10 +114,46 @@ function getAllAuthors(movies, recupElement){
     return authors;
 }
 
-function getAuthor(movie){
-    return movie.author;
+/**
+ * renvoie une liste d'acteurs/styles, avec leur nombre d'apparition dans la liste des films vus par un utilisateur, puis leur note moyenne
+ *
+ * @param {Movie[]} movies - Liste de film vus par un utilisateur.
+ * @param {string(Movie)} recupElement - Fonction qui recupere un element d'un film (pour generaliser à allElement) (acteurs ou styles).
+ * @returns {[[string, Number, Number]]} - La liste des auteurs.
+ */
+function getAllElement(movies, recupElement){
+    let elements = [[]];
+    //premier indice = couple element/nombre d'apparition/moyenne notes films, 2e indice: 0 auteur, 1 nbr apparition, 2 mpyenne films
+    for (let i = 0; i < seen.length; i++) {
+        let j = 0;
+        let found = false;
+        temp_elements = recupElement(seen[i]);
+        for (let h = 0; h < temp_elements.length; h++) {
+            while(j < elements.length && !found){
+                if (elements[j][0] == recupElement(temp_elements[h])) {
+                    found = true;
+                    elements[j][1] += 1;
+                    elements[j][2] += temp_elements[h].note;
+                }
+                j++;
+            }
+            if(!found){
+                elements.append([recupElement(temp_elements[h]), 1, temp_elements[h].note]);
+            }
+        }
+    }
+    for (let i = 0; i < elements.length; i++) {
+        elements[i][2] /= elements[i][1];        
+    }
+
+    elements.sort(comparerLignes);
+    return elements;
 }
 
+/*function getAuthor(movie){
+    return movie.author;
+}*/
+
 function getActors(movie){
     return movie.actors;
 }