diff --git a/WEB-INF/classes/dto/Message.class b/WEB-INF/classes/dto/Message.class
deleted file mode 100644
index d2e78212587772e41a107588ec40d0777260468b..0000000000000000000000000000000000000000
Binary files a/WEB-INF/classes/dto/Message.class and /dev/null differ
diff --git a/WEB-INF/classes/dto/Thread.class b/WEB-INF/classes/dto/Thread.class
deleted file mode 100644
index cbc1ec699cf07cc7c890b3993cc552f54d2b57ab..0000000000000000000000000000000000000000
Binary files a/WEB-INF/classes/dto/Thread.class and /dev/null differ
diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java
index 31683b7e646bc3a74c6527366bed2a2ce4953b09..ddc68ae6df42130f12dd0e8bf70151a6e5f7fba1 100644
--- a/WEB-INF/src/dao/UserDAO.java
+++ b/WEB-INF/src/dao/UserDAO.java
@@ -6,6 +6,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import dto.Message;
+import dto.MyThread;
 import dto.User;
 import jakarta.servlet.http.*;
 
@@ -182,15 +183,50 @@ public class UserDAO extends HttpServlet{
     }
 
     // Récupérer les thread auxquels un utilisateur est abonné
-    public List<Thread> getThreadsByUser(User user) throws SQLException {
-        List<Thread> threads = new ArrayList<>();
+    public List<MyThread> getThreadsByUser(User user) throws SQLException {
+        List<MyThread> threads = new ArrayList<>();
         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()){
+                int threadId = rs.getInt(1);
+                String threadname = rs.getString(2);
+                threads.add(new MyThread(threadId, threadname));
+            }
+        }
+        catch (SQLException sqle) {
+            sqle.getStackTrace();
+        }
+        return threads;
+    }
 
+    // Récupérer les messages de chaque thread à partir du plus récent
+    public List<Message> getMostRecentMessages(User user) throws SQLException {
+        List<Message> messages = new ArrayList<>();
+        PreparedStatement ps = this.con.prepareStatement("""
+        SELECT m.msgID, m.userID_msg, m.threadID, m.msg, m.posted_at FROM msg AS m 
+        INNER JOIN follow AS f 
+        ON m.userID_msg = f.userID_follow
+        WHERE f.threadID_follow = m.threadID 
+        AND m.userID_msg = ?
+        ORDER BY m.posted_at DESC
+        """);
+        try {
+            ps.setInt(1, user.getId());
+            ResultSet rs = ps.executeQuery();
+            while(rs.next()){
+                int msgID = rs.getInt(1);
+                int sender = rs.getInt(2);
+                int threadID = rs.getInt(3);
+                String content = rs.getString(4);
+                Date creationDate = rs.getDate(5);
+                messages.add(new Message(msgID, sender, threadID, content, creationDate));
             }
         }
+        catch (SQLException sqle) {
+            sqle.getStackTrace();
+        }
+        return messages;
     }
 }
\ No newline at end of file
diff --git a/WEB-INF/src/dto/Message.java b/WEB-INF/src/dto/Message.java
index a50cac348a79b81305f9396f446abec906edd402..b01220356622ab8ee40f3703e86fd4e37ad6623f 100644
--- a/WEB-INF/src/dto/Message.java
+++ b/WEB-INF/src/dto/Message.java
@@ -1,19 +1,23 @@
 package dto;
 
+import java.util.Date;
+
 public class Message {
     private int msgId;
     private int senderId;
     private int threadId;
     private String content;
+    private Date creationDate;
 
 
     //      Constructor     //
 
-    public Message(int msgId, int senderId, int threadId, String content) {
+    public Message(int msgId, int senderId, int threadId, String content, Date creationDate) {
         this.msgId = msgId;
         this.senderId = senderId;
         this.threadId = threadId;
         this.content = content;
+        this.creationDate = creationDate;
     }
 
 
diff --git a/db/createTables.sql b/db/createTables.sql
index 08b3c4641970e1300658d675cf640ac2aedbae42..fc1c896478203b3c608cd65d722c40216e68ba91 100644
--- a/db/createTables.sql
+++ b/db/createTables.sql
@@ -14,6 +14,7 @@ CREATE TABLE msg (
     userID_msg int,
     threadID int,
     msg text,
+    posted_at DATE,
     CONSTRAINT fk_message FOREIGN KEY (userID_msg) REFERENCES userAccount(userID),
     CONSTRAINT pk_message PRIMARY KEY (msgID)
 );
diff --git a/db/data.sql b/db/data.sql
index ca6e0be9076a988d7bccbd2f0e226bcb84e11035..93e813b98633f91e166358d8fbd4a4158e36b66f 100644
--- a/db/data.sql
+++ b/db/data.sql
@@ -7,7 +7,7 @@ INSERT INTO userAccount VALUES (1, 'toto', 'totopwd123'),
 INSERT INTO thread VALUES (1, 2, 'Gaming'),
                             (2, 3, 'Animaux'),
                             (3, 3, 'Objet perdu'),
-                            (4, 1, 'Discution');
+                            (4, 1, 'Discussion');
 
 
 INSERT INTO follow VALUES (2,1, TO_DATE('11/02/2025', 'DD/MM/YYYY')),
@@ -16,9 +16,9 @@ INSERT INTO follow VALUES (2,1, TO_DATE('11/02/2025', 'DD/MM/YYYY')),
                             (1,4, TO_DATE('20/09/2025', 'DD/MM/YYYY'));
 
 
-INSERT INTO msg VALUES (1, 3 , 1, 'Bonjour !'),
-                        (2, 4, 1, 'Hello !'),
-                        (3, 1, 3, 'Mon objet était ici.');
+INSERT INTO msg VALUES (1, 3 , 1, 'Bonjour !', TO_DATE('11/02/2025', 'DD/MM/YYYY'),
+                        (2, 4, 1, 'Hello !', TO_DATE('18/02/2025', 'DD/MM/YYYY'),
+                        (3, 1, 3, 'Mon objet était ici.', TO_DATE('02/02/2025', 'DD/MM/YYYY');
 
 
 INSERT INTO reactions VALUES (2, 1, 'TRUE'),