diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java
index ca7137755c53d8cf2aea9fc4cb34e74ca64826d7..81aaa522b1c7b926a09149d32695902a55d98add 100644
--- a/WEB-INF/src/controleurs/Feed.java
+++ b/WEB-INF/src/controleurs/Feed.java
@@ -40,6 +40,8 @@ public class Feed extends HttpServlet {
                 out.println("<html><body><meta charset=\"utf-8\">");
                 out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">");
                 out.println("<title>Welcome</title>");
+
+                out.println("<h1>Welcome " + login + "</h1>");
                 
                 out.println("<h1>Welcome " + login + "</h1>");
 
@@ -51,6 +53,8 @@ public class Feed extends HttpServlet {
                 out.println("</ul></nav>");
 
 
+                
+                
                 if (!messages.isEmpty()) {
                     for (Message message : messages) {
                         MyThread msgThread = null;
diff --git a/WEB-INF/src/controleurs/Following.java b/WEB-INF/src/controleurs/Following.java
new file mode 100644
index 0000000000000000000000000000000000000000..a93bb8886d2a78af94875b62f04d41d528e7173f
--- /dev/null
+++ b/WEB-INF/src/controleurs/Following.java
@@ -0,0 +1,88 @@
+package controleurs;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.sql.SQLException;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
+import dao.UserDAO;
+import dto.MyThread;
+import dto.User;
+
+@WebServlet("/Followed")
+public class Following extends HttpServlet {
+    public void service(HttpServletRequest req, HttpServletResponse res) 
+    throws IOException {
+        if (req.getSession().getAttribute("user") != null) {
+            PrintWriter out = res.getWriter();
+            UserDAO userDAO = new UserDAO();
+
+            String login = (String) req.getSession().getAttribute("login");
+            User user = userDAO.getUserByLogs(login, req.getSession().getAttribute("password").toString());
+            if (!userDAO.isDatabased(user)) res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html");
+
+            List<MyThread> threadsFollowedByUser = null;
+            try {
+                System.out.println("dans le try");
+                threadsFollowedByUser = userDAO.getThreadsFollowedByUser(user);
+            }
+            catch (SQLException sqle) {
+                sqle.getStackTrace();
+            } 
+
+            System.out.println(threadsFollowedByUser.size());
+
+            out.println("<html><body><meta charset=\"utf-8\">");
+            out.println("<title>Followed</title>");
+            
+            out.println("<nav>");
+            out.println("<ul class=\"menu\">");
+            out.println("<li class=\"menu_option\"><a href=\"#\">\uD83C\uDFE0 Home</a></li>");
+            out.println("<li class=\"menu_option\"><a href=\"#\">\uD83E\uDDF5 Followed</a></li>");
+            out.println("<li class=\"menu_option\"><a href=\"#\">\uD83D\uDC64 Account</a></li>");
+            out.println("</ul></nav>");
+
+            out.println("<h1>Threads followed</h1>");
+
+            if (!threadsFollowedByUser.isEmpty()) {
+                System.out.println("dans les threads suivis");
+                for (MyThread t : threadsFollowedByUser) {
+                    LocalDate followDate = null;
+                    try {
+                        followDate = userDAO.getFollowDateOfThread(user, t);
+                    }
+                    catch (SQLException sqle) {
+                        sqle.getStackTrace();
+                    }
+
+                    out.println("<div class=\"thread\">");
+                    out.println("<h3 class=\"threadname\">Thread name: " + t.getThreadName() + "</h3>");
+                    out.println("<h4 class=\"followDate\">Following since: " + followDate + "</h4>");
+                    out.println("</div>");
+                }
+            }
+            else {
+                out.println("<h3>You are not following any thread yet.</h3>");
+                out.println("<button><a href=\"\">Discover new threads</a></button>");
+            }
+
+            out.println("</body>");
+            out.println("<footer>");
+            out.println("Connected as " + login);
+            out.println("</footer>");
+            out.println("</html>");
+        }
+        else {
+            res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html");
+        }
+
+    }
+    
+}
diff --git a/WEB-INF/src/dao/ThreadDAO.java b/WEB-INF/src/dao/ThreadDAO.java
index d8133b6204e814569a17ee0d8434fab90d4579a5..22140beae20180a423aedb2f5bde4c4ecea6f336 100644
--- a/WEB-INF/src/dao/ThreadDAO.java
+++ b/WEB-INF/src/dao/ThreadDAO.java
@@ -5,6 +5,7 @@ import dto.User;
 import dto.MyThread;
 
 import java.sql.*;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java
index d976a069461d0f66624c882291be2730b3ad4175..32b553bad47270b3d383523ef6412458fe7b8001 100644
--- a/WEB-INF/src/dao/UserDAO.java
+++ b/WEB-INF/src/dao/UserDAO.java
@@ -184,15 +184,21 @@ public class UserDAO {
     // Récupérer les thread auxquels un utilisateur est abonné
     public List<MyThread> getThreadsFollowedByUser(User user) throws SQLException {
         List<MyThread> threads = new ArrayList<>();
+        ThreadDAO threadDAO = new ThreadDAO();
         PreparedStatement ps = this.con.prepareStatement("SELECT threadID_follow FROM follow WHERE userID_follow = ?");
         try {
             ps.setInt(1, user.getId());
             ResultSet rs = ps.executeQuery();
             while(rs.next()){
+                System.out.println("dans le while");
                 int threadId = rs.getInt(1);
-                String threadname = rs.getString(2);
+                System.out.println("id : " + threadId);
+                String threadname = threadDAO.getThreadById(threadId).getThreadName();
+                System.out.println("name : " + threadname);
                 threads.add(new MyThread(threadId, threadname));
+                System.out.println("thread ajouté aux suivis");
             }
+            System.out.println("après le while");
         }
         catch (SQLException sqle) {
             sqle.getStackTrace();
@@ -240,7 +246,6 @@ public class UserDAO {
         ORDER BY m.posted_at DESC;
         """);
         try {
-            System.out.println("user id : " + user.getId());
             ps.setInt(1, user.getId());
             ResultSet rs = ps.executeQuery();
             while(rs.next()){
@@ -257,4 +262,33 @@ public class UserDAO {
         }
         return messages;
     }
+
+    public LocalDate getFollowDateOfThread(User user, MyThread thread) 
+    throws SQLException {
+        LocalDate followDate = null;
+        PreparedStatement ps = this.con.prepareStatement("""
+                SELECT followDate FROM follow 
+                WHERE userID_follow = ?
+                AND threadID_follow = ? 
+                """);
+        try {
+            ps.setInt(1, user.getId());
+            System.out.println(user.getId());
+            ps.setInt(2, thread.getId());
+            System.out.println(thread.getId());
+            System.out.println(ps);
+            ResultSet rs = ps.executeQuery();
+            while (rs.next()) {
+                System.out.println("dans le while");
+                followDate = rs.getDate(1).toLocalDate();
+                System.out.println(followDate);
+            }
+
+        }
+        catch (SQLException sqle) {
+            sqle.getStackTrace();
+        }
+
+        return followDate;
+    }
 }
\ No newline at end of file