diff --git a/Documents/CaptThibault_rapport_projet_semestre.docx b/Documents/CaptThibault_rapport_projet_semestre.docx
index b64afa97f0eaa8b5c524f7dc4c742c5e8a6eb28f..ef91bb36c1bca2f6bf806f0d47f7fd92d019286b 100644
Binary files a/Documents/CaptThibault_rapport_projet_semestre.docx and b/Documents/CaptThibault_rapport_projet_semestre.docx differ
diff --git a/todo-workspace/backend/pom.xml b/todo-workspace/backend/pom.xml
index 1b2347478b45562a3420e4603ce85687ac0cea99..0d97912040a6e37b9011a189b1efbd3c1537aa35 100755
--- a/todo-workspace/backend/pom.xml
+++ b/todo-workspace/backend/pom.xml
@@ -1,147 +1,152 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.springframework.boot</groupId>
-		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.4.2</version>
-		<relativePath/> <!-- lookup parent from repository -->
-	</parent>
-	<groupId>com.hepia</groupId>
-	<artifactId>backend</artifactId>
-	<version>0.0.1-SNAPSHOT</version>
-	<name>todo</name>
-	<description>API Rest for todo&apos;s list</description>
-	<url/>
-	<licenses>
-		<license/>
-	</licenses>
-	<developers>
-		<developer/>
-	</developers>
-	<scm>
-		<connection/>
-		<developerConnection/>
-		<tag/>
-		<url/>
-	</scm>
-	<properties>
-		<java.version>17</java.version>
-	</properties>
-	<dependencies>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-data-jpa</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-security</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-validation</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-web</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-docker-compose</artifactId>
-			<scope>runtime</scope>
-			<optional>true</optional>
-		</dependency>
-		<dependency>
-			<groupId>org.postgresql</groupId>
-			<artifactId>postgresql</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.projectlombok</groupId>
-			<artifactId>lombok</artifactId>
-			<optional>true</optional>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-test</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.security</groupId>
-			<artifactId>spring-security-test</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>junit-jupiter</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-testcontainers</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>postgresql</artifactId>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.4.2</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.hepia</groupId>
+    <artifactId>backend</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>todo</name>
+    <description>API Rest for todo&apos;s list</description>
+    <url/>
+    <licenses>
+        <license/>
+    </licenses>
+    <developers>
+        <developer/>
+    </developers>
+    <scm>
+        <connection/>
+        <developerConnection/>
+        <tag/>
+        <url/>
+    </scm>
+    <properties>
+        <java.version>17</java.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-docker-compose</artifactId>
+            <scope>runtime</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-testcontainers</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>postgresql</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
+            <version>2.8.5</version>
+        </dependency>
+    </dependencies>
 
-	<build>
-		<finalName>todoapi</finalName>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<annotationProcessorPaths>
-						<path>
-							<groupId>org.projectlombok</groupId>
-							<artifactId>lombok</artifactId>
-						</path>
-					</annotationProcessorPaths>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.asciidoctor</groupId>
-				<artifactId>asciidoctor-maven-plugin</artifactId>
-				<version>2.2.1</version>
-				<executions>
-					<execution>
-						<id>generate-docs</id>
-						<phase>prepare-package</phase>
-						<goals>
-							<goal>process-asciidoc</goal>
-						</goals>
-						<configuration>
-							<backend>html</backend>
-							<doctype>book</doctype>
-						</configuration>
-					</execution>
-				</executions>
-				<dependencies>
-					<dependency>
-						<groupId>org.springframework.restdocs</groupId>
-						<artifactId>spring-restdocs-asciidoctor</artifactId>
-						<version>${spring-restdocs.version}</version>
-					</dependency>
-				</dependencies>
-			</plugin>
-			<plugin>
-				<groupId>org.springframework.boot</groupId>
-				<artifactId>spring-boot-maven-plugin</artifactId>
-				<configuration>
-					<excludes>
-						<exclude>
-							<groupId>org.projectlombok</groupId>
-							<artifactId>lombok</artifactId>
-						</exclude>
-					</excludes>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+    <build>
+        <finalName>todoapi</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.asciidoctor</groupId>
+                <artifactId>asciidoctor-maven-plugin</artifactId>
+                <version>2.2.1</version>
+                <executions>
+                    <execution>
+                        <id>generate-docs</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>process-asciidoc</goal>
+                        </goals>
+                        <configuration>
+                            <backend>html</backend>
+                            <doctype>book</doctype>
+                        </configuration>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.springframework.restdocs</groupId>
+                        <artifactId>spring-restdocs-asciidoctor</artifactId>
+                        <version>${spring-restdocs.version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                        </exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>
diff --git a/todo-workspace/backend/src/main/java/com/hepia/backend/config/SecurityConfig.java b/todo-workspace/backend/src/main/java/com/hepia/backend/config/SecurityConfig.java
index 60bae092ef90fb7f72cc502736d8617c98b7d840..32d5728e337320dd692312e4161d6d10c606566e 100644
--- a/todo-workspace/backend/src/main/java/com/hepia/backend/config/SecurityConfig.java
+++ b/todo-workspace/backend/src/main/java/com/hepia/backend/config/SecurityConfig.java
@@ -24,7 +24,10 @@ public class SecurityConfig {
                 .csrf(AbstractHttpConfigurer::disable)
                 .authorizeHttpRequests(req ->
                         req.requestMatchers(
-                                        "/todos/**"
+                                        "/todos/**",
+                                        "/swagger-ui/**",      // Autoriser l'accès à Swagger UI
+                                        "/v3/api-docs/**",      // Autoriser l'accès aux API docs
+                                        "/"
                                 ).permitAll()
                                 .anyRequest()
                                 .authenticated()
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 c69bedfdf998f68907bc9d1a4d3ba308e4f87b0e..541491df84520bbb9e8a20d2bc74c166c4b8e9ef 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
@@ -3,6 +3,7 @@ package com.hepia.backend.controller;
 import com.hepia.backend.model.dto.CreateTodoRequest;
 import com.hepia.backend.model.entity.Todo;
 import com.hepia.backend.repository.TodoRepository;
+import com.hepia.backend.service.TodoService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
@@ -15,38 +16,25 @@ import static org.springframework.http.HttpStatus.CREATED;
 @RequestMapping("/todos")
 @RequiredArgsConstructor
 public class TodoController {
-    private final TodoRepository todoRepository;
+    private final TodoService todoService;
 
     @GetMapping
     public ResponseEntity<List<Todo>> getAll() {
-        List<Todo> todos = todoRepository.findAll();
-        return ResponseEntity.ok(todos);
+        return todoService.getAll();
     }
 
     @PostMapping
     public ResponseEntity<Todo> create(@RequestBody CreateTodoRequest request) {
-        Todo todo = Todo.builder().name(request.getName()).completed(false).build();
-        Todo saved = todoRepository.save(todo);
-        return ResponseEntity.status(CREATED).body(saved);
+        return todoService.create(request);
     }
 
     @DeleteMapping("/{id}")
     public ResponseEntity<Long> delete(@PathVariable Long id) {
-        if (!todoRepository.existsById(id)){
-            return ResponseEntity.notFound().build();
-        }
-        todoRepository.deleteById(id);
-        return ResponseEntity.ok(id);
+        return todoService.delete(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);
-        return ResponseEntity.ok(updated);
+        return todoService.toggleCompleted(id);
     }
 }
diff --git a/todo-workspace/backend/src/main/java/com/hepia/backend/service/TodoService.java b/todo-workspace/backend/src/main/java/com/hepia/backend/service/TodoService.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c491bd7763bcab8a5e80888625607e358da486e
--- /dev/null
+++ b/todo-workspace/backend/src/main/java/com/hepia/backend/service/TodoService.java
@@ -0,0 +1,51 @@
+package com.hepia.backend.service;
+
+import com.hepia.backend.model.dto.CreateTodoRequest;
+import com.hepia.backend.model.entity.Todo;
+import com.hepia.backend.repository.TodoRepository;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+import static org.springframework.http.HttpStatus.CREATED;
+
+@Service
+@RequiredArgsConstructor
+public class TodoService {
+    private final TodoRepository todoRepository;
+
+    public ResponseEntity<List<Todo>> getAll() {
+        List<Todo> todos = todoRepository.findAll();
+        return ResponseEntity.ok(todos);
+    }
+
+    public ResponseEntity<Todo> create(CreateTodoRequest request) {
+        Todo todo = Todo.builder().name(request.getName()).completed(false).build();
+        Todo saved = todoRepository.save(todo);
+        return ResponseEntity.status(CREATED).body(saved);
+    }
+
+    public ResponseEntity<Long> delete(Long id) {
+        Optional<Todo> todo = todoRepository.findById(id);
+        if (todo.isEmpty()) {
+            return ResponseEntity.notFound().build();
+        }
+
+        todoRepository.deleteById(todo.get().getId());
+        return ResponseEntity.ok(id);
+    }
+
+    public ResponseEntity<Todo> toggleCompleted(Long id) {
+        Optional<Todo> todo = todoRepository.findById(id);
+        if (todo.isEmpty()) {
+            return ResponseEntity.notFound().build();
+        }
+
+        todo.get().setCompleted(!todo.get().isCompleted());
+        Todo updated = todoRepository.save(todo.get());
+        return ResponseEntity.ok(updated);
+    }
+}
diff --git a/todo-workspace/backend/src/main/resources/application.yml b/todo-workspace/backend/src/main/resources/application.yml
index 982753f5f870023c682fe20f782fa9bab2b14d66..5202707678d2503bde4ea2b072772a0c2601fc98 100755
--- a/todo-workspace/backend/src/main/resources/application.yml
+++ b/todo-workspace/backend/src/main/resources/application.yml
@@ -17,4 +17,7 @@ spring:
 server:
   servlet:
     context-path: /api/v1
-  port: 8080
\ No newline at end of file
+  port: 8080
+springdoc:
+  swagger-ui:
+    path: /