diff --git a/Documents/JournalDeBord.md b/Documents/JournalDeBord.md
index 9ebab1e704b2d869b323b6bab66ae2ca02226a01..244184efc95a44fa0ae0eab769ac3e5d972a26ab 100644
--- a/Documents/JournalDeBord.md
+++ b/Documents/JournalDeBord.md
@@ -22,3 +22,4 @@
 | 18.02.2025              | Modal pour ajouter une voiture                               | -                                                                         | -                                       | Angular garage -> Je me rends compte que c'est trop gros pour un "petit projet". Je recommence pour une TODO list |
 | 19.02.2025              | Essayer de finir le front de la TODO's list                  | -                                                                         | -                                       | -                                                                                                                 |
 | 20.02.2025              | Finir de back + lier front et back                           | -                                                                         | -                                       | -                                                                                                                 |
+| 22.02.2025              | Utiliser un store pour les données front                     | -                                                                         | -                                       | loading infini => voir pourquoi                                                                                   |
diff --git a/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java b/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java
index cfc41a9388ac2607b55fb805f00f8049028ed08c..30ee4d04b57d21d195c646e5b844833aa2317293 100644
--- a/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java
+++ b/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java
@@ -31,13 +31,19 @@ public class TodoController {
     }
 
     @DeleteMapping("/{id}")
-    public ResponseEntity<Void> delete(@PathVariable Long id) {
+    public ResponseEntity<Long> delete(@PathVariable Long id) {
+        if (!todoRepository.existsById(id)){
+            return ResponseEntity.notFound().build();
+        }
         todoRepository.deleteById(id);
-        return ResponseEntity.noContent().build();
+        return ResponseEntity.ok(id);
     }
 
     @PatchMapping("/{id}")
     public ResponseEntity<Todo> toggleCompleted(@PathVariable Long id) {
+        if (!todoRepository.existsById(id)){
+            return ResponseEntity.notFound().build();
+        }
         Todo todo = todoRepository.findById(id).orElseThrow();
         todo.setCompleted(!todo.isCompleted());
         Todo updated = todoRepository.save(todo);
diff --git a/todo-workspace/frontend/angular.json b/todo-workspace/frontend/angular.json
index 21d39134b4e215666359884ee3b2a7d71271bb55..2a1de19551f4cad82151d52d841ed6e72da315d6 100644
--- a/todo-workspace/frontend/angular.json
+++ b/todo-workspace/frontend/angular.json
@@ -3,9 +3,7 @@
   "version": 1,
   "cli": {
     "packageManager": "pnpm",
-    "schematicCollections": [
-      "angular-eslint"
-    ],
+    "schematicCollections": ["angular-eslint"],
     "analytics": false
   },
   "newProjectRoot": "projects",
diff --git a/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.html b/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.html
index 40f14a29d1c49ac4ee1e5911fa5aa33b56410cc6..e3b7c937b02d34ed9123e817dc4b3924d88e33c3 100644
--- a/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.html
+++ b/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.html
@@ -6,14 +6,19 @@
 
     <!-- Liste des tâches -->
     <div class="flex-grow flex items-center justify-center py-5">
-      <ul class="list text-gray-600 text-lg">
-        @for (todo of todos(); track todo.id) {
-          <app-todo-list-item [todo]="todo" (toggleCompleted)="toggleCompleted($event)" (remove)="remove($event)" />
-        }
-      </ul>
+      @if (store.isLoading()) {
+        <span class="loading loading-spinner loading-xl"></span>
+      } @else {
+        <ul class="list text-gray-600 text-lg">
+          @let todos = store.todos();
+          @for (todo of todos; track todo.id) {
+            <app-todo-list-item [todo]="todo" (toggleCompleted)="toggleCompleted($event)" (remove)="remove($event)" />
+          }
+        </ul>
 
-      @if (!todos()?.length) {
-        <p class="text-gray-600 text-lg">Ajoute ta première tâche 👆</p>
+        @if (!todos?.length) {
+          <p class="text-gray-600 text-lg">Ajoute ta première tâche 👆</p>
+        }
       }
     </div>
   </div>
diff --git a/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.ts b/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.ts
index 812ebcc12393a20bb2841a9778b6b38188c8acbc..1c9e3378637962130860e7d79151af69f50b0cd1 100644
--- a/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.ts
+++ b/todo-workspace/frontend/src/app/features/todo-list/todo-list.component.ts
@@ -1,7 +1,4 @@
 import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
-import { TodoService } from '@core/ports/todo.service';
-import { toSignal } from '@angular/core/rxjs-interop';
-import { BehaviorSubject, switchMap, tap } from 'rxjs';
 import { FormsModule } from '@angular/forms';
 import { Todo } from '@core/models/todo';
 import { AddTodoFormComponent } from '@features/todo-list/components/add-todo-form.component';
@@ -16,30 +13,18 @@ import { TodoStore } from '@core/todo.store';
   providers: [TodoStore],
 })
 export default class TodoListComponent {
-  // TODO: Implement the logic with TodoStore
-  private reload$$ = new BehaviorSubject<void>(void 0);
-  private readonly todoService = inject(TodoService);
-  todos = toSignal(this.reload$$.pipe(switchMap(() => this.todoService.getAll())));
+  protected readonly store = inject(TodoStore);
 
   addTodo(todoName: string) {
     if (!todoName) return;
-    this.todoService
-      .add(todoName)
-      .pipe(tap(() => this.reload$$.next()))
-      .subscribe();
+    this.store.add(todoName);
   }
 
   toggleCompleted(todo: Todo) {
-    this.todoService
-      .toggleCompleted(todo.id)
-      .pipe(tap(() => this.reload$$.next()))
-      .subscribe();
+    this.store.toggleCompleted(todo.id);
   }
 
   remove(todo: Todo) {
-    this.todoService
-      .remove(todo.id)
-      .pipe(tap(() => this.reload$$.next()))
-      .subscribe();
+    this.store.remove(todo.id);
   }
 }