diff --git a/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java b/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java
index 2ae6084ab0bd0dba6cff3f7c728dea64c9437f0c..9b9678eb3a74dc4fcc5187caa6945e20b8369fdb 100644
--- a/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java
+++ b/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java
@@ -80,4 +80,37 @@ public class CandidacyController {
                 .map(ResponseEntity::ok)
                 .orElse(ResponseEntity.notFound().build());
     }
+    @DeleteMapping("/{id}")
+    public ResponseEntity<Void> deleteCandidacy(@PathVariable Long id) {
+        if (!candidacyService.existsById(id)) {
+            return ResponseEntity.notFound().build();
+        }
+        candidacyService.deleteCandidacy(id);
+        return ResponseEntity.noContent().build();
+    }
+
+    @PutMapping("/{id}")
+    public ResponseEntity<?> updateCandidacy(@PathVariable Long id, @RequestBody Candidacy updatedCandidacy) {
+        Optional<Candidacy> existingCandidacy = candidacyService.getCandidacyById(id);
+
+        if (existingCandidacy.isEmpty()) {
+            return ResponseEntity.notFound().build();
+        }
+
+        Candidacy candidacy = existingCandidacy.get();
+        if (updatedCandidacy.getStudent() != null && updatedCandidacy.getStudent().getId() != null) {
+            candidacy.setStudent(updatedCandidacy.getStudent());
+        }
+        if (updatedCandidacy.getStage() != null && updatedCandidacy.getStage().getId() != null) {
+            candidacy.setStage(updatedCandidacy.getStage());
+        }
+        if (updatedCandidacy.getUnivSupervisor() != null) {
+            candidacy.setUnivSupervisor(updatedCandidacy.getUnivSupervisor());
+        }
+
+        Candidacy savedCandidacy = candidacyService.saveCandidacy(candidacy);
+        return ResponseEntity.ok(savedCandidacy);
+    }
+
+
 }
diff --git a/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java b/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java
index 174fd3eab4d0f0fdfa7a3ce947897a1338bda1a0..c0138daabed21906a9c152635ef67dc5a985442e 100644
--- a/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java
+++ b/src/main/java/com/example/gestionstagesbackend/services/CandidacyService.java
@@ -35,4 +35,8 @@ public class CandidacyService {
     public List<Candidacy> getCandidaciesByStudentId(Long studentId) {
         return candidacyRepository.findByStudentId(studentId);
     }
+    public boolean existsById(Long id) {
+        return candidacyRepository.existsById(id);
+    }
+
 }