diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java
index 7d43f2cba05f29b6c340661bc123e3bba9739baf..98a7ef4e813cfdcb7d4bd2b26960336e7d981b56 100644
--- a/WEB-INF/src/controleurs/Feed.java
+++ b/WEB-INF/src/controleurs/Feed.java
@@ -39,15 +39,16 @@ public class Feed extends HttpServlet {
 
                 out.println("<html><body><meta charset=\"utf-8\">");
                 out.println("<title>Welcome</title>");
-                out.println("<h1>Welcome " + login + "</h1>");
-
-                out.println("<nav class=\"menu\">");
-                out.println("<ul class=\"options_list\">");
-                out.println("<li class=\"option\"><a href=\"#\">\uD83C\uDFE0 Home</a></li>");
-                out.println("<li class=\"option\"><a href=\"#\">\uD83E\uDDF5 Followed</a></li>");
-                out.println("<li class=\"option\"><a href=\"#\">\uD83D\uDC64 Account</a></li>");
+                
+                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>Welcome " + login + "</h1>");
+                
                 if (!messages.isEmpty()) {
                     for (Message message : messages) {
                         MyThread msgThread = null;
@@ -59,7 +60,7 @@ public class Feed extends HttpServlet {
                         out.println("<div class=\"message\">");
                         out.println("<h3 class=\"msgThread\">" + msgThread.getThreadName() + "</h3>");
                         out.println("<p class=\"msgContent\">" + message.getContent() + "</p>");
-                        out.println("<form><button class=\"react\" type=\"submit\" value=\"Like\">");
+                        out.println("<form><button class=\"react\" type=\"submit\" value=\"Like\">Like</button>");
                         out.println("</div>");
                     }
                 }
@@ -68,6 +69,8 @@ public class Feed extends HttpServlet {
                     out.println("<button><a href=\"\">Discover new threads</a></button>");
                 }
 
+                out.println("<a href=\"http://localhost:8080/s4a021-web-backend/NewThread\">Create a new thread</a>");
+
                 out.println("</body>");
                 out.println("<footer>");
                 out.println("Connected as " + login);
diff --git a/WEB-INF/src/controleurs/NewThread.java b/WEB-INF/src/controleurs/NewThread.java
new file mode 100644
index 0000000000000000000000000000000000000000..14bfaa9e1c831661326a31cefa18d12cf5303064
--- /dev/null
+++ b/WEB-INF/src/controleurs/NewThread.java
@@ -0,0 +1,87 @@
+package controleurs;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.sql.SQLException;
+import java.util.List;
+
+import dao.ThreadDAO;
+import dao.UserDAO;
+import dto.MyThread;
+import dto.User;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
+@WebServlet("/NewThread")
+public class NewThread extends HttpServlet {
+    public void service (HttpServletRequest req, HttpServletResponse res) throws IOException {
+        if (req.getSession().getAttribute("user") != null) {
+            PrintWriter out = res.getWriter();
+            ThreadDAO threadDAO = new ThreadDAO();
+            UserDAO userDAO = new UserDAO();
+
+            String login = (String) req.getSession().getAttribute("login");
+            User user = (User) req.getSession().getAttribute("user");
+            String threadname = null;
+            String message = null;
+            boolean newThreadWasCreated = false;
+
+            if (req.getParameter("threadname") != null) {
+                threadname = req.getParameter("threadname");
+            }
+            if (req.getParameter("first_message") != null) {
+                message = req.getParameter("first_message");
+            }
+
+            if (threadname != null && message != null) {
+                try {
+                    threadDAO.createThread(user, threadname);
+                    List<MyThread> threadsCreated = userDAO.getThreadsCreatedByUser(user);
+                    MyThread newThread = null;
+                    for (MyThread t : threadsCreated) {
+                        if (t.getThreadName().equals(threadname)) {
+                            newThread = t;
+                            newThreadWasCreated = true;
+                        }
+                    }
+                    // PROBLEME ICI : Cannot invoke "dto.MyThread.getId()" because "<parameter2>" is null
+                    userDAO.postMessage(user, newThread, message);
+                }
+                catch (SQLException sqle) {
+                    sqle.getStackTrace();
+                }
+            }
+
+
+            out.println("<html><body><meta charset=\"utf-8\">");
+            out.println("<title>New thread</title>");
+
+            out.println("<div class=\"write\">");
+            out.println("<h3>Create a new thread</h3>");
+            out.println("<form action=\"http://localhost:8080/s4a021-web-backend/NewThread\" method=\"post\">");
+            out.println("<input name=\"threadname\" type=\"text\" placeholder=\"Name of new thread\">");
+            out.println("<input name=\"first_message\" type=\"text\" placeholder=\"Post the first message of your new thread!\">");
+            out.println("<button type=\"submit\">Create</button>");
+            out.println("</form>");
+
+            if (newThreadWasCreated) {
+                out.println("<p class=\"information\">The thread " + threadname + " was successfully created</p>");
+            }
+
+
+            out.println("<button><a href=\"http://localhost:8080/s4a021-web-backend/Welcome\">Back to feed</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/UserDAO.java b/WEB-INF/src/dao/UserDAO.java
index 0e6507117dc6cc2de9dedfe673e6214d3863c265..22d2f10916e5835ed48ca1538b1832e29281ab5b 100644
--- a/WEB-INF/src/dao/UserDAO.java
+++ b/WEB-INF/src/dao/UserDAO.java
@@ -155,10 +155,11 @@ public class UserDAO {
     }
 
     // Poster un message dans un thread
-    public void postMessage(User user, Thread thread, String message) throws SQLException {
+    public void postMessage(User user, MyThread thread, String message) throws SQLException {
         PreparedStatement ps = this.con.prepareStatement("INSERT INTO msg (userID_msg, threadID, msg) VALUES(?, ?, ?)");
         try {
             ps.setInt(1, user.getId());
+            // PROBLEME ICI 
             ps.setInt(2, (int) thread.getId());
             ps.setString(3, message);
         }
@@ -181,7 +182,7 @@ public class UserDAO {
     }
 
     // Récupérer les thread auxquels un utilisateur est abonné
-    public List<MyThread> getThreadsByUser(User user) throws SQLException {
+    public List<MyThread> getThreadsFollowedByUser(User user) throws SQLException {
         List<MyThread> threads = new ArrayList<>();
         PreparedStatement ps = this.con.prepareStatement("SELECT threadID_follow FROM follow WHERE userID_follow = ?");
         try {
@@ -199,6 +200,29 @@ public class UserDAO {
         return threads;
     }
 
+    public List<MyThread> getThreadsCreatedByUser(User user) throws SQLException {
+        List<MyThread> threads = new ArrayList<>();
+        PreparedStatement ps = this.con.prepareStatement("""
+            SELECT threadID, threadname FROM thread AS t 
+            INNER JOIN userAccount AS u
+            ON t.userid_thread = u.userid
+            WHERE u.userid = ?
+            """);
+        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<>();
@@ -217,10 +241,8 @@ public class UserDAO {
         try {
             System.out.println("user id : " + user.getId());
             ps.setInt(1, user.getId());
-            System.out.println("dans le try");
             ResultSet rs = ps.executeQuery();
             while(rs.next()){
-                System.out.println("dans le while");
                 int msgID = rs.getInt(1);
                 int sender = rs.getInt(2);
                 int threadID = rs.getInt(3);
@@ -230,10 +252,8 @@ public class UserDAO {
             }
         }
         catch (SQLException sqle) {
-            System.out.println("erreur");
             sqle.getStackTrace();
         }
-        System.out.println("test");
         return messages;
     }
 }
\ No newline at end of file