From 0d2ba962dbc0225de740afc8b0b634efc09a63f2 Mon Sep 17 00:00:00 2001
From: Adrien Fryson <adrien.fryson@outlook.com>
Date: Fri, 7 Mar 2025 21:26:17 +0100
Subject: [PATCH] =?UTF-8?q?Envoie=20message=20avec=20Entr=C3=A9e=20+=20log?=
 =?UTF-8?q?o=20fil=20de=20discussion=20+=20dark=20mode?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 sae/WEB-INF/src/modele/DS.java |   6 ++--
 sae/WEB-INF/vue/accueil.jsp    |  56 +++++++++++++++++++++------------
 sae/WEB-INF/vue/creerFil.jsp   |  31 +++++++++++-------
 sae/WEB-INF/vue/fil.jsp        |  53 +++++++++++++++++--------------
 sae/WEB-INF/vue/listerFil.jsp  |  18 ++++++-----
 sae/WEB-INF/vue/login.jsp      |  24 ++++++--------
 sae/WEB-INF/vue/register.jsp   |  23 +++++++-------
 sae/images/default.png         | Bin 0 -> 16783 bytes
 sae/images/logo.png            | Bin 0 -> 7429 bytes
 script.sql                     |   2 +-
 10 files changed, 120 insertions(+), 93 deletions(-)
 create mode 100644 sae/images/default.png
 create mode 100644 sae/images/logo.png

diff --git a/sae/WEB-INF/src/modele/DS.java b/sae/WEB-INF/src/modele/DS.java
index f34509c..a9b4271 100644
--- a/sae/WEB-INF/src/modele/DS.java
+++ b/sae/WEB-INF/src/modele/DS.java
@@ -15,9 +15,9 @@ public class DS {
     }
 
     public Connection getConnection() {
-        String url = "jdbc:postgresql://psqlserv/but2";
-        String login = "othemanekhachnaneetu";
-        String pwd = "moi";
+        String url = "jdbc:postgresql://localhost:5432/postgres";
+        String login = "postgres";
+        String pwd = "";
         Connection con = null;
         try {
             con = DriverManager.getConnection(url, login, pwd);
diff --git a/sae/WEB-INF/vue/accueil.jsp b/sae/WEB-INF/vue/accueil.jsp
index ffb7d3a..f2a7a09 100644
--- a/sae/WEB-INF/vue/accueil.jsp
+++ b/sae/WEB-INF/vue/accueil.jsp
@@ -5,6 +5,9 @@
 <%@ page import="modele.FilDeDiscussionDAO" %>
 <%@ page import="modele.Abonnement" %>
 <%@ page import="java.util.List" %>
+<%@ page import="java.util.Set" %>
+<%@ page import="java.util.HashSet" %>
+
 
 <!DOCTYPE html>
 <html lang="fr">
@@ -13,12 +16,13 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>CampusTalk - Accueil</title>
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
-    <link rel="shortcut icon" href="https://www.shareicon.net/data/2016/07/10/119195_chat_512x512.png"> 
+    <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-100 flex">
+<body class="bg-gray-900 text-white flex">
     <aside class="w-64 bg-gray-800 text-white h-screen">
-        <div class="p-4">
-            <h1 class="text-2xl font-bold">CampusTalk</h1>
+        <div class="p-4 text-center">
+            <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
+            <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
         <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
@@ -34,24 +38,36 @@
             List<Abonnement> abonnements = adao.findAbonnements(email);
             FilDeDiscussionDAO fdao = new FilDeDiscussionDAO();
         %>
-            <div class="max-w-2xl mx-auto mt-12 p-6 bg-white rounded-lg shadow-md">
-                <h2 class="text-2xl font-bold mb-4">Bienvenue sur CampusTalk</h2>
-                <p class="mb-4">Bonjour, <%= username %> !</p>
-                <p class="mb-4">Vous êtes connecté en tant que <%= email %></p>
-                <a href="<%= request.getContextPath() %>/listerFil" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Voir les autres fils de discussion</a>
-            </div>
-            <div class="max-w-2xl mx-auto mt-8 p-6 bg-white rounded-lg shadow-md">
-                <h3 class="text-xl font-bold mb-4">Vos abonnements</h3>
-                <ul class="list-disc pl-5">
-                    <% for (Abonnement abo : abonnements) { %>
-                        <li class="mb-2">
-                            <a href="<%= request.getContextPath() %>/fil?id=<%= abo.getIdFil() %>" class="text-blue-500 hover:underline">
-                                <%= fdao.findById(abo.getIdFil()).getNom() %>
-                            </a>
-                        </li>
+        <div class="max-w-2xl mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md">
+            <h2 class="text-2xl font-bold mb-4">Bienvenue sur CampusTalk</h2>
+            <p class="mb-4">Bonjour, <%= username %> !</p>
+            <p class="mb-4">Vous êtes connecté en tant que <%= email %></p>
+        </div>
+        <div class="max-w-2xl mx-auto mt-8 p-6 bg-gray-800 rounded-lg shadow-md">
+            <h3 class="text-xl font-bold mb-4">Vos abonnements</h3>
+            <% 
+                Set<Integer> abonnementsIds = new HashSet<>();
+                for (Abonnement abonnement : abonnements) {
+                    abonnementsIds.add(abonnement.getIdFil());
+                }
+
+                FilDeDiscussionDAO fddao = new FilDeDiscussionDAO();
+                for (FilDeDiscussion f : fddao.findAll()) {
+                    if (abonnementsIds.contains(f.getId())) {
+            %>
+            <div class="mb-4 p-4 bg-gray-700 rounded-lg shadow-md">
+                <a href="<%= request.getContextPath() %>/fil?id=<%= f.getId() %>" class="block">
+                    <img src="<%= request.getContextPath() %>/images/<%= f.getLogo() %>" alt="Logo" class="w-16 h-16 mx-auto">
+                    <h4 class="font-bold text-lg"><%= f.getNom() %></h4>
+                    <% if (f.getDescription() != null) { %>
+                        <p class="text-gray-400"><%= f.getDescription() %></p>
                     <% } %>
-                </ul>
             </div>
+            <% 
+                    }
+                }
+            %>
+        </div>
     </div>
 </body>
 </html>
diff --git a/sae/WEB-INF/vue/creerFil.jsp b/sae/WEB-INF/vue/creerFil.jsp
index 5ac6e50..9ebc55c 100644
--- a/sae/WEB-INF/vue/creerFil.jsp
+++ b/sae/WEB-INF/vue/creerFil.jsp
@@ -7,12 +7,13 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>CampusTalk - Créer un Fil de Discussion</title>
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
-    <link rel="shortcut icon" href="https://www.shareicon.net/data/2016/07/10/119195_chat_512x512.png">
+    <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-100 flex">
+<body class="bg-gray-900 text-white flex">
     <aside class="w-64 bg-gray-800 text-white h-screen">
-        <div class="p-4">
-            <h1 class="text-2xl font-bold">CampusTalk</h1>
+        <div class="p-4 text-center">
+            <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
+            <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
         <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
@@ -29,20 +30,26 @@
             </div>
         <% } %>
 
-        <div class="max-w-2xl mx-auto mt-8 p-6 bg-white rounded-lg shadow-md">
+        <div class="max-w-2xl mx-auto mt-8 p-6 bg-gray-800 rounded-lg shadow-md">
             <h1 class="text-2xl font-bold mb-4 text-center">Créer un nouveau fil de discussion</h1>
-            <form action="creerFil" method="post" class="mt-4">
+            <form action="<%= request.getContextPath() %>/creerFil" method="post" enctype="multipart/form-data" class="space-y-4">
                 <div class="mb-4">
-                    <label for="nom" class="block text-gray-700 font-semibold">Nom du fil:</label>
-                    <input type="text" class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" id="nom" name="nom" required>
+                    <label for="nom" class="block text-gray-300 font-semibold">Nom du fil:</label>
+                    <input type="text" class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" id="nom" name="nom" required>
                 </div>
                 <div class="mb-4">
-                    <label for="createuremail" class="block text-gray-700 font-semibold">Email du créateur:</label>
-                    <input type="email" class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" id="createuremail" name="createuremail" required>
+                    <label for="createuremail" class="block text-gray-300 font-semibold">Email du créateur:</label>
+                    <input type="email" class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" id="createuremail" name="createuremail" required>
                 </div>
                 <div class="mb-4">
-                    <label for="description" class="block text-gray-700 font-semibold">Description:</label>
-                    <textarea class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" id="description" name="description" rows="3" required></textarea>
+                    <label for="description" class="block text-gray-300 font-semibold">Description:</label>
+                    <textarea class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" id="description" name="description" rows="3" required></textarea>
+                </div>
+                <div class="mb-4">
+                    <label for="logo" class="block text-gray-300 font-semibold">Logo du fil:</label>
+                    <div class="flex items-center">
+                        <input type="file" id="file" name="file" class="text-gray-300">
+                    </div>
                 </div>
                 <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-600 transition-colors w-full">Créer</button>
             </form>
diff --git a/sae/WEB-INF/vue/fil.jsp b/sae/WEB-INF/vue/fil.jsp
index 50e9fce..cb3fe84 100644
--- a/sae/WEB-INF/vue/fil.jsp
+++ b/sae/WEB-INF/vue/fil.jsp
@@ -14,13 +14,13 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>CampusTalk - Fil de Discussion</title>
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
-    <link rel="shortcut icon" href="https://www.shareicon.net/data/2016/07/10/119195_chat_512x512.png">
+    <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
     <style>
         .message-container {
             transition: background-color 0.3s ease;
         }
         .message-container:hover {
-            background-color: #f3f4f6;
+            background-color: #374151;
         }
         .message-image {
             max-width: 200px; 
@@ -30,10 +30,11 @@
         }
     </style>
 </head>
-<body class="bg-gray-100 flex">
-    <aside class="w-64 bg-gray-800 text-white h-screen">
-        <div class="p-4">
-            <h1 class="text-2xl font-bold">CampusTalk</h1>
+<body class="bg-gray-900 text-white flex h-screen">
+    <aside class="w-64 bg-gray-800 text-white h-full">
+        <div class="p-4 text-center">
+            <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
+            <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
         <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
@@ -42,7 +43,7 @@
             <a href="<%= request.getContextPath() %>/logout" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-red-700">Se déconnecter</a>
         </nav>
     </aside>
-    <div class="flex-1 p-6">
+    <div class="flex-1 p-6 flex flex-col">
 
         <%
             int id = Integer.parseInt(request.getParameter("id"));
@@ -55,7 +56,7 @@
         %>
 
         <div class="container mx-auto px-4 mt-8">
-            <div class="bg-white p-6 rounded-lg shadow-lg">
+            <div class="bg-gray-800 p-6 rounded-lg shadow-lg">
                 <h2 class="text-2xl font-bold mb-4 text-center"><%= fil.getNom() %></h2>
                 <div class="overflow-y-auto max-h-96" id="messages-box">
                     <% for (Message m : messages) {
@@ -66,9 +67,9 @@
                         <div class="w-10 h-10 rounded-full overflow-hidden">
                             <img src="https://www.gravatar.com/avatar/<%= m.getAuteurEmail().hashCode() %>?d=identicon&s=40" alt="Avatar">
                         </div>
-                        <div class="ml-4 bg-gray-200 p-4 rounded-lg">
+                        <div class="ml-4 bg-gray-700 p-4 rounded-lg">
                             <h4 class="font-bold"><%= mdao.findUserName(m.getAuteurEmail()) %></h4>
-                            <p class="text-sm text-gray-600"><%= formattedDate %></p>
+                            <p class="text-sm text-gray-400"><%= formattedDate %></p>
                             <p class="mt-2"><%= m.getContenu() %></p>
                             <% if (m.getFileName() != null) { %>
                             <img src="<%= request.getContextPath() %>/uploads/<%= m.getFileName() %>" alt="Image" class="mt-2 message-image">
@@ -78,9 +79,9 @@
                                     <input type="hidden" name="messageId" value="<%= m.getId() %>">
                                     <button type="submit" class="text-blue-500 hover:text-blue-700">
                                         <% if (m.getLikeCount()) { %>
-                                        ❤️ Enlever le like
+                                        ❤️
                                         <% } else { %>
-                                        🤍 Like
+                                        🤍
                                         <% } %>
                                     </button>
                                 </form>
@@ -96,22 +97,15 @@
                     <% } %>
                 </div>
 
-                <div class="mt-6 bg-white p-6 rounded-lg shadow-lg">
-                    <form action="envoyerMessage" method="post" enctype="multipart/form-data">
+                <div class="mt-6 bg-gray-800 p-6 rounded-lg shadow-lg">
+                    <form id="messageForm" action="envoyerMessage" method="post" enctype="multipart/form-data">
                         <div class="mb-4">
-                            <label for="contenu" class="block text-gray-700 font-semibold">Votre message :</label>
-                            <textarea class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" id="contenu" name="contenu" rows="3" required></textarea>
+                            <label for="contenu" class="block text-gray-300 font-semibold">Votre message :</label>
+                            <textarea class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" id="contenu" name="contenu" rows="3" required></textarea>
                         </div>
                         <div class="mb-4">
-                            <label for="file" class="block text-gray-700 font-semibold">Ajouter une image :</label>
                             <div class="flex items-center">
-                                <input type="file" class="hidden" id="file" name="file">
-                                <label for="file" class="cursor-pointer bg-blue-500 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-600 transition-colors flex items-center">
-                                    <svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-                                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"></path>
-                                    </svg>
-                                    Télécharger
-                                </label>
+                                <input type="file" id="file" name="file" class="text-gray-300">
                             </div>
                         </div>
                         <input type="hidden" name="filId" value="<%= id %>">
@@ -127,6 +121,17 @@
                 let messagesBox = document.getElementById('messages-box');
                 messagesBox.scrollTop = messagesBox.scrollHeight;
             };
+
+            // setInterval(function() {
+            //     location.reload();
+            // }, 5000);
+
+            document.getElementById('contenu').addEventListener('keypress', function (e) {
+                if (e.key === 'Enter' && !e.shiftKey) {
+                    e.preventDefault();
+                    document.getElementById('messageForm').submit();
+                }
+            });
         </script>
     </div>
 </body>
diff --git a/sae/WEB-INF/vue/listerFil.jsp b/sae/WEB-INF/vue/listerFil.jsp
index 0b53034..379797b 100644
--- a/sae/WEB-INF/vue/listerFil.jsp
+++ b/sae/WEB-INF/vue/listerFil.jsp
@@ -14,12 +14,13 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>CampusTalk - Fils de Discussion</title>
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
-    <link rel="shortcut icon" href="https://www.shareicon.net/data/2016/07/10/119195_chat_512x512.png">
+    <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-100 flex">
+<body class="bg-gray-900 text-white flex">
     <aside class="w-64 bg-gray-800 text-white h-screen">
-        <div class="p-4">
-            <h1 class="text-2xl font-bold">CampusTalk</h1>
+        <div class="p-4 text-center">
+            <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
+            <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
         <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
@@ -30,9 +31,9 @@
     </aside>
     <div class="flex-1 p-6">
 
-        <div class="max-w-2xl mx-auto mt-8 p-6 bg-white rounded-lg shadow-md">
+        <div class="max-w-2xl mx-auto mt-8 p-6 bg-gray-800 rounded-lg shadow-md">
             <h2 class="text-2xl font-bold mb-4 text-center">Fils de Discussion</h2>
-            <p class="text-gray-700 mb-4 text-center">(auxquels vous n'êtes pas abonné)</p>
+            <p class="text-gray-400 mb-4 text-center">(auxquels vous n'êtes pas abonné)</p>
             <% 
                 String email = (String) session.getAttribute("email");
                 AbonnementDao adao = new AbonnementDao();
@@ -46,10 +47,11 @@
                 for (FilDeDiscussion f : fddao.findAll()) {
                     if (!abonnementsIds.contains(f.getId())) {
             %>
-            <div class="mb-4 p-4 bg-gray-100 rounded-lg shadow-md">
+            <div class="mb-4 p-4 bg-gray-700 rounded-lg shadow-md">
+                <img src="<%= request.getContextPath() %>/images/<%= f.getLogo() %>" alt="Logo" class="w-16 h-16 mx-auto">
                 <h4 class="font-bold text-lg"><%= f.getNom() %></h4>
                 <% if (f.getDescription() != null) { %>
-                    <p class="text-gray-700"><%= f.getDescription() %></p>
+                    <p class="text-gray-400"><%= f.getDescription() %></p>
                 <% } %>
                 <a href="<%= request.getContextPath() %>/suivreFil?id=<%= f.getId() %>" class="bg-blue-500 text-white px-4 py-2 rounded mt-2 inline-block">Suivre</a>
             </div>
diff --git a/sae/WEB-INF/vue/login.jsp b/sae/WEB-INF/vue/login.jsp
index f9c1f98..a81985e 100644
--- a/sae/WEB-INF/vue/login.jsp
+++ b/sae/WEB-INF/vue/login.jsp
@@ -7,17 +7,13 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>CampusTalk - Connexion</title>
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
-    <link rel="shortcut icon" href="https://www.shareicon.net/data/2016/07/10/119195_chat_512x512.png">
-    <style>
-        body {
-            background-color: #f8f9fa;
-        }
-    </style>
+    <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-100 flex">
+<body class="bg-gray-900 text-white flex">
     <aside class="w-64 bg-gray-800 text-white h-screen">
-        <div class="p-4">
-            <h1 class="text-2xl font-bold">CampusTalk</h1>
+        <div class="p-4 text-center">
+            <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
+            <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
         <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
@@ -27,7 +23,7 @@
         </nav>
     </aside>
     <div class="flex-1 p-6">
-        <div class="max-w-md mx-auto mt-12 p-6 bg-white rounded-lg shadow-md">
+        <div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md">
             <h2 class="text-2xl font-bold mb-4 text-center">Bienvenue sur CampusTalk</h2>
             <form action="login" method="post">
                 <%
@@ -39,12 +35,12 @@
                 </div>
                 <% request.removeAttribute("error"); } %>
                 <div class="mb-4">
-                    <label for="email" class="block text-gray-700 font-semibold">Adresse e-mail</label>
-                    <input type="email" class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" name="email" id="email" placeholder="Entrez votre e-mail" required>
+                    <label for="email" class="block text-gray-300 font-semibold">Adresse e-mail</label>
+                    <input type="email" class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" name="email" id="email" placeholder="Entrez votre e-mail" required>
                 </div>
                 <div class="mb-4">
-                    <label for="motdepasse" class="block text-gray-700 font-semibold">Mot de passe</label>
-                    <input type="password" class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" name="motdepasse" id="motdepasse" placeholder="Entrez votre mot de passe" required>
+                    <label for="motdepasse" class="block text-gray-300 font-semibold">Mot de passe</label>
+                    <input type="password" class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" name="motdepasse" id="motdepasse" placeholder="Entrez votre mot de passe" required>
                 </div>
                 <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-600 transition-colors w-full">Se connecter</button>
             </form>
diff --git a/sae/WEB-INF/vue/register.jsp b/sae/WEB-INF/vue/register.jsp
index fb8ae2b..97b79ba 100644
--- a/sae/WEB-INF/vue/register.jsp
+++ b/sae/WEB-INF/vue/register.jsp
@@ -7,12 +7,13 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>CampusTalk - Inscription</title>
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
-    <link rel="shortcut icon" href="https://www.shareicon.net/data/2016/07/10/119195_chat_512x512.png">
+    <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-100 flex">
+<body class="bg-gray-900 text-white flex">
     <aside class="w-64 bg-gray-800 text-white h-screen">
-        <div class="p-4">
-            <h1 class="text-2xl font-bold">CampusTalk</h1>
+        <div class="p-4 text-center">
+            <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
+            <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
         <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
@@ -22,7 +23,7 @@
         </nav>
     </aside>
     <div class="flex-1 p-6">
-        <div class="max-w-md mx-auto mt-12 p-6 bg-white rounded-lg shadow-md">
+        <div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md">
             <h2 class="text-2xl font-bold mb-4 text-center">Inscription</h2>
             <% if (request.getAttribute("error") != null) { %>
                 <div class="bg-red-100 text-red-700 p-4 rounded-lg mb-4">
@@ -31,16 +32,16 @@
                 <% request.removeAttribute("error"); } %>
             <form action="register" method="post">
                 <div class="mb-4">
-                    <label for="nom" class="block text-gray-700 font-semibold">Nom</label>
-                    <input type="text" class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" name="nom" id="nom" placeholder="Entrez votre nom" required>
+                    <label for="nom" class="block text-gray-300 font-semibold">Nom</label>
+                    <input type="text" class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" name="nom" id="nom" placeholder="Entrez votre nom" required>
                 </div>
                 <div class="mb-4">
-                    <label for="email" class="block text-gray-700 font-semibold">Adresse e-mail</label>
-                    <input type="email" class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" name="email" id="email" placeholder="Entrez votre e-mail" required>
+                    <label for="email" class="block text-gray-300 font-semibold">Adresse e-mail</label>
+                    <input type="email" class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" name="email" id="email" placeholder="Entrez votre e-mail" required>
                 </div>
                 <div class="mb-4">
-                    <label for="motdepasse" class="block text-gray-700 font-semibold">Mot de passe</label>
-                    <input type="password" class="w-full p-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400" name="motdepasse" id="motdepasse" placeholder="Choisissez un mot de passe" required>
+                    <label for="motdepasse" class="block text-gray-300 font-semibold">Mot de passe</label>
+                    <input type="password" class="w-full p-3 border border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-400 bg-gray-700 text-white" name="motdepasse" id="motdepasse" placeholder="Choisissez un mot de passe" required>
                 </div>
                 <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-600 transition-colors w-full">S'inscrire</button>
             </form>
diff --git a/sae/images/default.png b/sae/images/default.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c4a4aa777aa9377b7280a391189c13510ddc32d
GIT binary patch
literal 16783
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%0A-!g^ES;}`x
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
O<{(d3KbLh*2~7a^$64wC

literal 0
HcmV?d00001

diff --git a/sae/images/logo.png b/sae/images/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..0566e1982c1da1799554be7c8ca0c9cd99e3ea82
GIT binary patch
literal 7429
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

literal 0
HcmV?d00001

diff --git a/script.sql b/script.sql
index ba4d366..5d0f9ac 100644
--- a/script.sql
+++ b/script.sql
@@ -17,7 +17,7 @@ CREATE TABLE FilDeDiscussion (
     dateCreation TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
     createurEmail VARCHAR(100),
     description TEXT,
-    logo VARCHAR(255),
+    logo VARCHAR(255) DEFAULT 'default.png',
     CONSTRAINT pk_fil PRIMARY KEY (id),
     CONSTRAINT fk_createur FOREIGN KEY (createurEmail) REFERENCES Utilisateur(email)
         ON DELETE SET NULL
-- 
GitLab