diff --git a/TD1/favicon.svg b/TD1/favicon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..39b3c608265820a689bcda5d18f2638cdbcd3109
--- /dev/null
+++ b/TD1/favicon.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" 
+   width="20" height="20" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24">
+   <rect x="0" y="0" width="100%" height="100%" fill="black" />
+   <path stroke="lightblue" fill="none" d="M 6.1,6.6 8.4,2.1 14.1,1.9 17.9,5.7 16.1,9.4 11.7,12.6 11.2,17.2" />
+   <circle stroke="red" cx="11.2" cy="21.6" r="1.2" />
+</svg>
\ No newline at end of file
diff --git a/TD1/index.html b/TD1/index.html
index 93b493a513c90360929bce2e862e285767d627f7..e4a470bb825ccd36aaa096282e8bd3b53b998661 100644
--- a/TD1/index.html
+++ b/TD1/index.html
@@ -1 +1,58 @@
-Hello world !
\ No newline at end of file
+<!doctype html>
+<html>
+    <head>
+        <link rel="icon" href="favicon.svg"/>
+        <link href="/bootstrap.min.css" rel="stylesheet" 
+        crossorigin="anonymous">
+
+        <title>La revanche des lettres</title>
+    </head>
+    <body>
+        <div class="navbar navbar-dark bg-dark">
+            <div class="container">
+                <a href="/" class="navbar-brand">
+                    <img src="favicon.svg" alt="favicon">
+                    <strong>La revanche des lettres</strong>
+                </a>
+            </div>
+        </div>
+        <div class="container" id="content">
+            <br>
+            <table class="table table-striped table-hover">
+                <thead>
+                    <tr>
+                        <th>Longueur</th>
+                        <th>Thème</th>
+                        <th>Difficulté</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    <tr>
+                        <td>5 lettres</td>
+                        <td>Littérature</td>
+                        <td>&#9733;&#9733;&#9733;</td>
+                        <td><a href="level.html">Démarrer</a></td>
+                    </tr>
+                    <tr>
+                        <td>6 lettres</td>
+                        <td>Sciences</td>
+                        <td>&#9733;&#9733;&#9733;&#9733;</td>
+                        <td><a href="level.html">Démarrer</a></td>
+                    </tr>
+                    <tr>
+                        <td>6 lettres</td>
+                        <td>Culture générale</td>
+                        <td>&#9733;&#9733;&#9733;&#9733;&#9733;</td>
+                        <td><a href="level.html">Démarrer</a></td>
+                    </tr>
+                    <tr>
+                        <td>7 lettres</td>
+                        <td>Géographie</td>
+                        <td>&#9733;&#9733;&#9733;&#9733;&#9733;</td>
+                        <td><a href="level.html">Démarrer</a></td>
+                    </tr>
+                </tbody>
+            </table>
+        </div>
+    </body>
+</html>
diff --git a/TD1/level.html b/TD1/level.html
new file mode 100644
index 0000000000000000000000000000000000000000..649ee66808d3ae9a85ab9475303a5a980b20a648
--- /dev/null
+++ b/TD1/level.html
@@ -0,0 +1,72 @@
+<!doctype html>
+<html>
+    <head>
+        <title>La revanche des lettres</title>
+        <link rel="icon" href="favicon.svg" />
+        <link href="/bootstrap.min.css" 
+              rel="stylesheet"
+              crossorigin="anonymous">
+    </head>
+    <body>
+        <div class="navbar navbar-dark bg-dark">
+            <div class="container">
+                <a href="/" class="navbar-brand">
+                    <img src="favicon.svg" alt="favicon">
+                    <strong>La revanche des lettres</strong>
+                </a>
+                <span class="navbar-text">Géographie (7 lettres)</span>
+            </div>
+        </div>
+        <div class="container">
+            <br>
+            <div class="col-4 offset-4">
+                <table class="table table-bordered text-center">
+                    <tbody>
+                        <tr>
+                            <td class="text-bg-primary">A</td>
+                            <td class="text-bg-primary">A</td>
+                            <td class="text-bg-primary">C</td>
+                            <td class="text-bg-primary">C</td>
+                            <td class="text-bg-primary">D</td>
+                            <td class="text-bg-primary">E</td>
+                            <td class="text-bg-primary">S</td>
+                        </tr>
+                        <tr>
+                            <td class="text-bg-success">C</td>
+                            <td class="text-bg-danger">O</td>
+                            <td class="text-bg-danger">T</td>
+                            <td class="text-bg-danger">E</td>
+                            <td class="text-bg-success">A</td>
+                            <td class="text-bg-danger">U</td>
+                            <td class="text-bg-danger">X</td>
+                        </tr>
+                        <tr>
+                            <td class="text-bg-success">C</td>
+                            <td class="text-bg-success">A</td>
+                            <td class="text-bg-success">S</td>
+                            <td class="text-bg-danger">T</td>
+                            <td class="text-bg-danger">O</td>
+                            <td class="text-bg-danger">R</td>
+                            <td class="text-bg-danger">S</td>
+                        </tr>
+                        <tr>
+                            <td class="text-bg-success">?</td>
+                            <td class="text-bg-success">?</td>
+                            <td class="text-bg-success">?</td>
+                            <td class="text-bg-success">?</td>
+                            <td class="text-bg-success">?</td>
+                            <td class="text-bg-success">?</td>
+                            <td class="text-bg-success">?</td>
+                        </tr>
+                    </tbody>
+                </table>
+                <form action="">
+                    <div class="input-group mb-3">
+                        <input type="text" class="form-control" minlength="7" placeholder="__________">
+                        <button class="btn btn-outline-secondary" type="submit">Proposer</button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </body>
+</html>
diff --git a/TD1/my_style.css b/TD1/my_style.css
new file mode 100644
index 0000000000000000000000000000000000000000..f39e8ce21ff72ed6e5350393102b2e8b1366c8da
--- /dev/null
+++ b/TD1/my_style.css
@@ -0,0 +1,27 @@
+.container {
+    width: 800px;
+    margin: auto;
+}
+
+.table {
+    border: darkblue dotted 3px;
+    border-collapse: collapse;
+}
+
+.table th {
+    background-color: yellow;
+    color: darkred;
+    font-size: large;
+}
+
+.table th, td {
+    border: 1px solid;
+}
+
+.table-striped tr:nth-child(even) {
+    background-color: lightgray;
+}
+
+.table-hover tr:hover {
+    background-color: gray;
+}
\ No newline at end of file
diff --git a/TD23/package.json b/TD23/package.json
index c3b7589ed91d40acdddaedeaa927aff35b9ca232..108ebf9426d03658d431a5a6df21efd2868b5e09 100644
--- a/TD23/package.json
+++ b/TD23/package.json
@@ -1,6 +1,6 @@
 {
-  "type": "module",
-  "scripts": {
-    "test": "PROGRESSION=\"${npm_config_progression}\" vitest run all.test.js"
-  }
-}
+    "type": "module",
+    "scripts": {
+        "test": "set PROGRESSION=\"${npm_config_progression}\" & vitest run all.test.js"
+    }
+}
\ No newline at end of file