diff --git a/api/index.js b/api/index.js
index ed1a08a9d0d2cbbff281481e30d9634979ae5b5e..868c1be5ba33537ffb040ad4538855131b7dd309 100644
--- a/api/index.js
+++ b/api/index.js
@@ -31,7 +31,7 @@ app.get('/editions', (req, res) => {
     });
 });
 app.get('/teams', (req, res) => {
-    const query = 'SELECT team.id_team, team.name ' +
+    const query = 'SELECT team.id_team, team.name, tag_team_edition.id_tag ' +
         'FROM `tag_team_edition` ' +
         'LEFT JOIN team ON tag_team_edition.id_team = team.id_team ' +
         'WHERE year = ?';
@@ -49,7 +49,8 @@ app.get('/entry', (req, res) => {
         'LEFT JOIN tag ON entry.id_tag = tag.id_tag ' +
         'LEFT JOIN tag_team_edition ON tag.id_tag = tag_team_edition.id_tag ' +
         'LEFT JOIN team ON tag_team_edition.id_team = team.id_team ' +
-        'WHERE tag_team_edition.year = ?';
+        'WHERE tag_team_edition.year = ? ' +
+        'ORDER BY entry.time_stamp ASC';
     const year = req.query.year;
     exports.db.query(query, [year], (err, result) => {
         if (err) {
diff --git a/api/index.ts b/api/index.ts
index fa60867067b2bdd0c1d0596f6cdb55b49c6d6d5a..e3c75300ceb16c8d2675913f3e2c076af462f6b8 100644
--- a/api/index.ts
+++ b/api/index.ts
@@ -34,7 +34,7 @@ app.get('/editions', (req: Request, res: Response) => {
 });
 
 app.get('/teams', (req: Request, res: Response) => {
-    const query = 'SELECT team.id_team, team.name ' +
+    const query = 'SELECT team.id_team, team.name, tag_team_edition.id_tag ' +
     'FROM `tag_team_edition` ' +
     'LEFT JOIN team ON tag_team_edition.id_team = team.id_team ' +
     'WHERE year = ?';
@@ -58,7 +58,8 @@ app.get('/entry', (req: Request, res: Response) => {
     'LEFT JOIN tag ON entry.id_tag = tag.id_tag ' +
     'LEFT JOIN tag_team_edition ON tag.id_tag = tag_team_edition.id_tag ' +
     'LEFT JOIN team ON tag_team_edition.id_team = team.id_team ' +
-    'WHERE tag_team_edition.year = ?';
+    'WHERE tag_team_edition.year = ? ' +
+    'ORDER BY entry.time_stamp ASC';
 
     const year = req.query.year
 
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 65fc216c8eddae1a7ad36604ebd5cddf298ea190..0c9b2366ca54d86edf05e7a6c1789acaefdb4d33 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -7,6 +7,9 @@
     "": {
       "name": "frontend",
       "version": "0.0.0",
+      "dependencies": {
+        "svelte-navigator": "^3.2.2"
+      },
       "devDependencies": {
         "@sveltejs/vite-plugin-svelte": "^1.1.0",
         "svelte": "^3.52.0",
@@ -89,6 +92,11 @@
         }
       }
     },
+    "node_modules/dedent-js": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz",
+      "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ=="
+    },
     "node_modules/deepmerge": {
       "version": "4.2.2",
       "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
@@ -508,6 +516,14 @@
         "node": ">=6"
       }
     },
+    "node_modules/lower-case": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+      "dependencies": {
+        "tslib": "^2.0.3"
+      }
+    },
     "node_modules/magic-string": {
       "version": "0.26.7",
       "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz",
@@ -538,6 +554,24 @@
         "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
       }
     },
+    "node_modules/no-case": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+      "dependencies": {
+        "lower-case": "^2.0.2",
+        "tslib": "^2.0.3"
+      }
+    },
+    "node_modules/pascal-case": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+      "dependencies": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
     "node_modules/path-parse": {
       "version": "1.0.7",
       "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -637,7 +671,6 @@
       "version": "3.53.1",
       "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.53.1.tgz",
       "integrity": "sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw==",
-      "dev": true,
       "engines": {
         "node": ">= 8"
       }
@@ -654,6 +687,49 @@
         "svelte": ">=3.19.0"
       }
     },
+    "node_modules/svelte-navigator": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/svelte-navigator/-/svelte-navigator-3.2.2.tgz",
+      "integrity": "sha512-Xio4ohLUG1nQJ+ENNbLphXXu9L189fnI1WGg+2Q3CIMPe8Jm2ipytKQthdBs8t0mN7p3Eb03SE9hq0xZAqwQNQ==",
+      "hasInstallScript": true,
+      "dependencies": {
+        "svelte2tsx": "^0.1.151"
+      },
+      "peerDependencies": {
+        "svelte": "3.x"
+      }
+    },
+    "node_modules/svelte2tsx": {
+      "version": "0.1.193",
+      "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.193.tgz",
+      "integrity": "sha512-vzy4YQNYDnoqp2iZPnJy7kpPAY6y121L0HKrSBjU/IWW7DQ6T7RMJed2VVHFmVYm0zAGYMDl9urPc6R4DDUyhg==",
+      "dependencies": {
+        "dedent-js": "^1.0.1",
+        "pascal-case": "^3.1.1"
+      },
+      "peerDependencies": {
+        "svelte": "^3.24",
+        "typescript": "^4.1.2"
+      }
+    },
+    "node_modules/tslib": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+      "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+    },
+    "node_modules/typescript": {
+      "version": "4.9.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
+      "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
+      "peer": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=4.2.0"
+      }
+    },
     "node_modules/vite": {
       "version": "3.2.4",
       "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz",
@@ -756,6 +832,11 @@
         "ms": "2.1.2"
       }
     },
+    "dedent-js": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz",
+      "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ=="
+    },
     "deepmerge": {
       "version": "4.2.2",
       "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
@@ -969,6 +1050,14 @@
       "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
       "dev": true
     },
+    "lower-case": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+      "requires": {
+        "tslib": "^2.0.3"
+      }
+    },
     "magic-string": {
       "version": "0.26.7",
       "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz",
@@ -990,6 +1079,24 @@
       "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
       "dev": true
     },
+    "no-case": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+      "requires": {
+        "lower-case": "^2.0.2",
+        "tslib": "^2.0.3"
+      }
+    },
+    "pascal-case": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+      "requires": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
     "path-parse": {
       "version": "1.0.7",
       "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@@ -1054,8 +1161,7 @@
     "svelte": {
       "version": "3.53.1",
       "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.53.1.tgz",
-      "integrity": "sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw==",
-      "dev": true
+      "integrity": "sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw=="
     },
     "svelte-hmr": {
       "version": "0.15.1",
@@ -1064,6 +1170,34 @@
       "dev": true,
       "requires": {}
     },
+    "svelte-navigator": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/svelte-navigator/-/svelte-navigator-3.2.2.tgz",
+      "integrity": "sha512-Xio4ohLUG1nQJ+ENNbLphXXu9L189fnI1WGg+2Q3CIMPe8Jm2ipytKQthdBs8t0mN7p3Eb03SE9hq0xZAqwQNQ==",
+      "requires": {
+        "svelte2tsx": "^0.1.151"
+      }
+    },
+    "svelte2tsx": {
+      "version": "0.1.193",
+      "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.193.tgz",
+      "integrity": "sha512-vzy4YQNYDnoqp2iZPnJy7kpPAY6y121L0HKrSBjU/IWW7DQ6T7RMJed2VVHFmVYm0zAGYMDl9urPc6R4DDUyhg==",
+      "requires": {
+        "dedent-js": "^1.0.1",
+        "pascal-case": "^3.1.1"
+      }
+    },
+    "tslib": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+      "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
+    },
+    "typescript": {
+      "version": "4.9.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
+      "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
+      "peer": true
+    },
     "vite": {
       "version": "3.2.4",
       "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 3d081fad9c9f03791927a97cb69dea24a49083c4..889bfd73d09b82e614aa08ed0cde8b621cd8ac49 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -12,5 +12,8 @@
     "@sveltejs/vite-plugin-svelte": "^1.1.0",
     "svelte": "^3.52.0",
     "vite": "^3.2.3"
+  },
+  "dependencies": {
+    "svelte-navigator": "^3.2.2"
   }
-}
\ No newline at end of file
+}
diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte
index 0abbc7200233933313f81185dcf7b4e3f7cd5c65..dc15c315e5a3d0a69b5a664a8777a42909861dfe 100644
--- a/frontend/src/App.svelte
+++ b/frontend/src/App.svelte
@@ -1,11 +1,52 @@
 <script>
-  import Teams from "./lib/Teams.svelte";
+    //https://svelte.dev/repl/c81d8f3dff584065a82b2d3ea7cd4aee?version=3.53.1
+    import { Router, Link, Route } from "svelte-navigator";
+    import Teams from "./lib/Teams.svelte";
+    import Entry from "./lib/Entry.svelte";
 </script>
 
-<main>
-  <Teams />
-</main>
+<Router>
+    <header>
+        <h1>Boldor</h1>
+        <Link to="/">Home</Link>
+        <Link to="teams">Équipes</Link>
+        <Link to="entry">Résultats</Link>
+    </header>
 
-<style>
+    <main>
+        <Route path="/">
+            <div
+                class="tenor-gif-embed"
+                data-postid="13756831"
+                data-share-method="host"
+                data-aspect-ratio="1.33495"
+                data-width="100%"
+            >
+                <a
+                    href="https://tenor.com/view/row-boat-ods-official-duck-studios-gif-13756831"
+                    >Row Boat GIF</a
+                >from <a href="https://tenor.com/search/row-gifs">Row GIFs</a>
+            </div>
+            <script
+                type="text/javascript"
+                async
+                src="https://tenor.com/embed.js"
+            ></script>
+        </Route>
+
+        <Route path="teams">
+            <Teams />
+        </Route>
 
+        <Route path="entry">
+            <Entry />
+        </Route>
+    </main>
+</Router>
+
+<style>
+    header {
+        height: 100px;
+        text-align: center;
+    }
 </style>
diff --git a/frontend/src/lib/Entry.svelte b/frontend/src/lib/Entry.svelte
new file mode 100644
index 0000000000000000000000000000000000000000..c1dec9a73b657e7ecc15088727feedbae25849f4
--- /dev/null
+++ b/frontend/src/lib/Entry.svelte
@@ -0,0 +1,77 @@
+<script>
+    const edition_url = "http://localhost:8000/editions";
+    
+    let editions = [];
+    fetch(edition_url)
+    .then((response) => response.json())
+    .then((editions_data) => {
+        editions = editions_data;
+    })
+    
+    let entries = [];
+    function getEntries(year) {
+        let entries_url = "http://localhost:8000/entry?year="+year;
+        fetch(entries_url)
+        .then((response) => response.json())
+        .then((entries_data) => {
+            entries = entries_data;
+        })
+    }
+    
+    let year_selected = new Date().getFullYear();
+    function selectYear(){
+        getEntries(year_selected);
+    }
+    
+    function parseTimeStamp(time_stamp) {
+        return (time_stamp.split("T")[1]).split(".")[0]
+    }
+
+    getEntries(year_selected)
+    </script>
+    
+    <div class="container">
+        <h1>Ordre de passage {year_selected}</h1>
+    
+        <select name="" id="" bind:value={year_selected} on:change={selectYear}>
+            {#each editions as edition }
+                <option value="{edition.year}">{edition.year}</option>
+            {/each}
+        </select>
+    
+        <table>
+            <tr>
+                <th>Heure de passage</th>
+                <th>Tag RFID</th>
+                <th>Équipe</th>
+                <th>Actions</th>
+            </tr>
+            {#each entries as entry}
+            <tr>
+                <td>{parseTimeStamp(entry.time_stamp)}</td>
+                <td>{entry.id_tag}</td>
+                <td>{entry.name}</td>
+                <td>...</td>
+            </tr>
+            {/each}
+        </table>
+    </div>
+    
+    <style>
+        .container {
+            width: 80%;
+            margin: auto;
+            max-width: 1024px;
+            background-color: rgb(235, 235, 235);
+            padding: 15px;
+        }
+    
+        table, tr, td, th{
+            border: 1px solid black;
+        }
+    
+        table {
+            border-collapse: collapse;
+            width: 100%;
+        }
+    </style>
\ No newline at end of file
diff --git a/frontend/src/lib/Teams.svelte b/frontend/src/lib/Teams.svelte
index 1fc2a33bdd7ac1e3fbeb338f5d4bb646c17a7f19..dbf5a351af83d28f1aeee27d0068e6fabaa3fc5c 100644
--- a/frontend/src/lib/Teams.svelte
+++ b/frontend/src/lib/Teams.svelte
@@ -10,7 +10,7 @@ fetch(edition_url)
 
 let teams = [];
 function getTeams(year) {
-    let teams_url = "http://localhost:8000/entry?year="+year;
+    let teams_url = "http://localhost:8000/teams?year="+year;
     fetch(teams_url)
     .then((response) => response.json())
     .then((teams_data) => {
@@ -27,7 +27,7 @@ getTeams(year_selected)
 </script>
 
 <div class="container">
-    <h1>Pad d'bol d'or</h1>
+    <h1>Liste des équipe pour l'années {year_selected}</h1>
 
     <select name="" id="" bind:value={year_selected} on:change={selectYear}>
         {#each editions as edition }
@@ -39,11 +39,13 @@ getTeams(year_selected)
         <tr>
             <th>Tag RFID</th>
             <th>Team name</th>
+            <th>Action</th>
         </tr>
         {#each teams as team}
         <tr>
             <td>{team.id_tag}</td>
             <td>{team.name}</td>
+            <td>...</td>
         </tr>
         {/each}
     </table>