diff --git a/src/main/java/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.java b/src/main/java/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.java
new file mode 100644
index 0000000000000000000000000000000000000000..53fc3eb2c478dccd242a62a425e4e01f359b8fe1
--- /dev/null
+++ b/src/main/java/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.java
@@ -0,0 +1,159 @@
+package fr.atlantique.imt.inf211.jobmngt.controller;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import fr.atlantique.imt.inf211.jobmngt.entity.Company;
+import fr.atlantique.imt.inf211.jobmngt.entity.JobOffer;
+import fr.atlantique.imt.inf211.jobmngt.entity.QualificationLevel;
+import fr.atlantique.imt.inf211.jobmngt.entity.Sector;
+import fr.atlantique.imt.inf211.jobmngt.service.CompanyService;
+import fr.atlantique.imt.inf211.jobmngt.service.JobOfferService;
+import fr.atlantique.imt.inf211.jobmngt.service.QualificationLevelService;
+import fr.atlantique.imt.inf211.jobmngt.service.SectorService;
+
+@Controller
+@RequestMapping("/jobs")
+public class JobOfferController {
+
+    private static final Logger log = LoggerFactory.getLogger(JobOfferController.class); // ✅ Ajout du logger
+
+    private final JobOfferService jobOfferService;
+    private final CompanyService companyService;
+    private final QualificationLevelService qualificationLevelService;
+    private final SectorService sectorService;
+
+    @Autowired
+    public JobOfferController(JobOfferService jobOfferService, 
+                              CompanyService companyService,
+                              QualificationLevelService qualificationLevelService,
+                              SectorService sectorService) {
+        this.jobOfferService = jobOfferService;
+        this.companyService = companyService;
+        this.qualificationLevelService = qualificationLevelService;
+        this.sectorService = sectorService;
+    }
+
+    // ✅ Affiche la liste des offres d'emploi avec log
+    @GetMapping
+    public String listJobOffers(Model model) {
+        List<JobOffer> jobOffers = jobOfferService.getAllJobOffers();
+        log.info("🔎 Nombre d'offres récupérées: {}", jobOffers.size());
+
+        model.addAttribute("jobOffers", jobOffers);
+        return "jobOffer/jobOfferList";
+    }
+
+    // ✅ Affiche les détails d'une offre
+    @GetMapping("/view/{id}")
+    public String viewJobOffer(@PathVariable("id") int id, Model model, RedirectAttributes redirectAttributes) {
+        Optional<JobOffer> jobOfferOpt = jobOfferService.findById(id);
+        if (jobOfferOpt.isPresent()) {
+            model.addAttribute("jobOffer", jobOfferOpt.get());
+            return "jobOffer/jobOfferView";
+        } else {
+            redirectAttributes.addFlashAttribute("errorMessage", "L'offre d'emploi avec ID " + id + " n'existe pas !");
+            return "redirect:/jobs";
+        }
+    }
+
+    // ✅ Affiche le formulaire de création
+    @GetMapping("/create")
+    public String showCreateForm(Model model) {
+        List<QualificationLevel> levels = qualificationLevelService.listOfQualificationLevels();
+        List<Company> companies = companyService.getAllCompanies();
+        List<Sector> sectors = sectorService.listOfSectors();
+
+        // Ajout des logs pour voir si les listes sont vides
+        log.info("Loaded Qualification Levels: {}", levels.size());
+        log.info("Loaded Companies: {}", companies.size());
+        log.info("Loaded Sectors: {}", sectors.size());
+
+        model.addAttribute("jobOffer", new JobOffer());
+        model.addAttribute("qualificationLevels", levels);
+        model.addAttribute("companies", companies);
+        model.addAttribute("sectors", sectors);
+        return "jobOffer/jobOfferForm";
+    }
+
+    // ✅ Enregistre une offre avec gestion des secteurs et des erreurs
+    @PostMapping("/save")
+    public String saveJobOffer(@ModelAttribute JobOffer jobOffer,
+                               @RequestParam(value = "sectorIds", required = false) List<Integer> sectorIds,
+                               RedirectAttributes redirectAttributes) {
+        try {
+            log.info("🔹 Tentative d'enregistrement: {}", jobOffer);
+
+            // Associer les secteurs sélectionnés à l'offre d'emploi
+            if (sectorIds != null && !sectorIds.isEmpty()) {
+                Set<Sector> selectedSectors = sectorIds.stream()
+                        .map(sectorService::findById)
+                        .filter(Optional::isPresent)
+                        .map(Optional::get)
+                        .collect(Collectors.toSet());
+
+                jobOffer.setSectors(selectedSectors);
+            }
+
+            jobOfferService.saveJobOffer(jobOffer);
+            log.info("✅ Enregistrement réussi !");
+            redirectAttributes.addFlashAttribute("successMessage", "✅ Offre d'emploi créée avec succès !");
+            return "redirect:/jobs";
+        } catch (Exception e) {
+            log.error("❌ Erreur lors de l'enregistrement: {}", e.getMessage());
+            redirectAttributes.addFlashAttribute("errorMessage", "❌ Erreur lors de la création de l'offre !");
+            return "redirect:/jobs/create";
+        }
+    }
+
+    // ✅ Supprime une offre d'emploi
+    @GetMapping("/delete/{id}")
+    public String deleteJobOffer(@PathVariable("id") int id, RedirectAttributes redirectAttributes) {
+        Optional<JobOffer> jobOfferOpt = jobOfferService.findById(id);
+
+        if (jobOfferOpt.isPresent()) {
+            try {
+                jobOfferService.deleteJobOffer(id);
+                redirectAttributes.addFlashAttribute("successMessage", "✅ Offre d'emploi supprimée avec succès !");
+            } catch (Exception e) {
+                log.error("❌ Erreur lors de la suppression de l'offre: {}", e.getMessage());
+                redirectAttributes.addFlashAttribute("errorMessage", "❌ Erreur lors de la suppression de l'offre !");
+            }
+        } else {
+            redirectAttributes.addFlashAttribute("errorMessage", "❌ L'offre d'emploi avec ID " + id + " n'existe pas !");
+        }
+
+        return "redirect:/jobs";
+    }
+
+    // ✅ Affiche le formulaire de modification
+    @GetMapping("/{id}/edit")
+    public String showEditForm(@PathVariable("id") int id, Model model, RedirectAttributes redirectAttributes) {
+        Optional<JobOffer> jobOfferOpt = jobOfferService.findById(id);
+        if (jobOfferOpt.isPresent()) {
+            model.addAttribute("jobOffer", jobOfferOpt.get());
+            model.addAttribute("companies", companyService.getAllCompanies());
+            model.addAttribute("qualificationLevels", qualificationLevelService.listOfQualificationLevels());
+            model.addAttribute("sectors", sectorService.listOfSectors());
+            return "jobOffer/jobOfferForm";
+        } else {
+            redirectAttributes.addFlashAttribute("errorMessage", "L'offre d'emploi avec ID " + id + " n'existe pas !");
+            return "redirect:/jobs";
+        }
+    }
+}
diff --git a/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java b/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java
index 2838c90dae951c415c8cfe1557df68780722efbb..dbc643b04756af42ea44f302108449fc196ef7a6 100644
--- a/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java
+++ b/src/main/java/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.java
@@ -6,6 +6,7 @@ import java.util.Set;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
+import jakarta.persistence.CascadeType;
 import jakarta.persistence.Column;
 import jakarta.persistence.Entity;
 import jakarta.persistence.FetchType;
@@ -31,14 +32,14 @@ public class JobOffer implements java.io.Serializable {
     @SequenceGenerator(name = "JOBOFFER_ID_GENERATOR", sequenceName = "JOBOFFER_ID_SEQ", allocationSize = 1)
     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "JOBOFFER_ID_GENERATOR")
     @Column(name="id", unique = true, nullable = false)
-    private int id;
+    private Integer id; // 🔹 Modifié de int à Integer
 
     @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "compid", nullable = false)
+    @JoinColumn(name = "compid", nullable = true) // 🔹 nullable = true pour éviter les erreurs si null
     private Company company;
 
     @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "qualiflevelid", nullable = false)
+    @JoinColumn(name = "qualiflevelid", nullable = true) // 🔹 nullable = true pour éviter les erreurs si null
     private QualificationLevel qualificationLevel;
 
     @Column(name="title", nullable = false, length = 50)
@@ -48,29 +49,33 @@ public class JobOffer implements java.io.Serializable {
     private String taskDescription;
 
     @Temporal(TemporalType.DATE)
+<<<<<<< HEAD
+=======
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+>>>>>>> d9a17a2 (new_feat)
     @Column(name="publicationdate")
     private Date publicationDate;
 
-    @ManyToMany(fetch = FetchType.LAZY)
+    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) // 🔹 Ajout du cascade pour assurer la persistance
     @JoinTable(name="indexjoboffersector", schema="public",
         joinColumns = { @JoinColumn(name="jobofferid", nullable = false, updatable = false) },
         inverseJoinColumns = { @JoinColumn(name="sectorid", nullable = false, updatable = false) })
     @JsonIgnoreProperties({"applications", "jobOffers"}) //  Empêche les boucles JSON infinies
     private Set<Sector> sectors = new HashSet<>();
 
-    @OneToMany(fetch = FetchType.LAZY, mappedBy = "jobOffer") //  Correction du mappedBy
+    @OneToMany(fetch = FetchType.LAZY, mappedBy = "jobOffer", cascade = CascadeType.ALL) // 🔹 Ajout du cascade
     private Set<OfferMessage> offerMessages = new HashSet<>();
 
     public JobOffer() {}
 
-    public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title) {
+    public JobOffer(Integer id, Company company, QualificationLevel qualificationLevel, String title) {
         this.id = id;
         this.company = company;
         this.qualificationLevel = qualificationLevel;
         this.title = title;
     }
 
-    public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title, 
+    public JobOffer(Integer id, Company company, QualificationLevel qualificationLevel, String title, 
                     String taskDescription, Date publicationDate, Set<Sector> sectors, Set<OfferMessage> offerMessages) {
         this.id = id;
         this.company = company;
@@ -82,8 +87,8 @@ public class JobOffer implements java.io.Serializable {
         this.offerMessages = offerMessages;
     }
 
-    public int getId() { return id; }
-    public void setId(int id) { this.id = id; }
+    public Integer getId() { return id; }
+    public void setId(Integer id) { this.id = id; }
 
     public Company getCompany() { return company; }
     public void setCompany(Company company) { this.company = company; }
@@ -108,3 +113,237 @@ public class JobOffer implements java.io.Serializable {
 }
 
 
+<<<<<<< HEAD
+=======
+
+
+
+
+
+// package fr.atlantique.imt.inf211.jobmngt.entity;
+
+// import java.util.Date;
+// import java.util.HashSet;
+// import java.util.Set;
+
+// import org.springframework.format.annotation.DateTimeFormat;
+
+// import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+// import jakarta.persistence.Column;
+// import jakarta.persistence.Entity;
+// import jakarta.persistence.FetchType;
+// import jakarta.persistence.GeneratedValue;
+// import jakarta.persistence.GenerationType;
+// import jakarta.persistence.Id;
+// import jakarta.persistence.JoinColumn;
+// import jakarta.persistence.JoinTable;
+// import jakarta.persistence.ManyToMany;
+// import jakarta.persistence.ManyToOne;
+// import jakarta.persistence.OneToMany;
+// import jakarta.persistence.SequenceGenerator;
+// import jakarta.persistence.Table;
+// import jakarta.persistence.Temporal;
+// import jakarta.persistence.TemporalType;
+
+// @Entity
+// @Table(name="joboffer", schema="public")
+// @JsonIgnoreProperties({"offerMessages"}) // ✅ Évite la surcharge JSON circulaire
+// public class JobOffer implements java.io.Serializable {
+
+//     @Id
+//     @SequenceGenerator(name = "JOBOFFER_ID_GENERATOR", sequenceName = "JOBOFFER_ID_SEQ", allocationSize = 1)
+//     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "JOBOFFER_ID_GENERATOR")
+//     @Column(name="id", unique = true, nullable = false)
+//     private int id;
+
+//     @ManyToOne(fetch = FetchType.LAZY)
+//     @JoinColumn(name = "compid", nullable = false)
+//     private Company company;
+
+//     @ManyToOne(fetch = FetchType.LAZY)
+//     @JoinColumn(name = "qualiflevelid", nullable = false)
+//     private QualificationLevel qualificationLevel;
+
+//     @Column(name="title", nullable = false, length = 50)
+//     private String title;
+
+//     @Column(name="taskdescription")
+//     private String taskDescription;
+
+//     @Temporal(TemporalType.DATE)
+// @DateTimeFormat(pattern = "yyyy-MM-dd")
+// @Column(name="publicationdate")
+// private Date publicationDate;
+
+//     @ManyToMany(fetch = FetchType.LAZY)
+//     @JoinTable(name="indexjoboffersector", schema="public",
+//         joinColumns = { @JoinColumn(name="jobofferid", nullable = false, updatable = false) },
+//         inverseJoinColumns = { @JoinColumn(name="sectorid", nullable = false, updatable = false) })
+//     @JsonIgnoreProperties({"applications", "jobOffers"}) //  Empêche les boucles JSON infinies
+//     private Set<Sector> sectors = new HashSet<>();
+
+//     @OneToMany(fetch = FetchType.LAZY, mappedBy = "jobOffer") //  Correction du mappedBy
+//     private Set<OfferMessage> offerMessages = new HashSet<>();
+
+//     public JobOffer() {}
+
+//     public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title) {
+//         this.id = id;
+//         this.company = company;
+//         this.qualificationLevel = qualificationLevel;
+//         this.title = title;
+//     }
+
+//     public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title, 
+//                     String taskDescription, Date publicationDate, Set<Sector> sectors, Set<OfferMessage> offerMessages) {
+//         this.id = id;
+//         this.company = company;
+//         this.qualificationLevel = qualificationLevel;
+//         this.title = title;
+//         this.taskDescription = taskDescription;
+//         this.publicationDate = publicationDate;
+//         this.sectors = sectors;
+//         this.offerMessages = offerMessages;
+//     }
+
+//     public int getId() { return id; }
+//     public void setId(int id) { this.id = id; }
+
+//     public Company getCompany() { return company; }
+//     public void setCompany(Company company) { this.company = company; }
+
+//     public QualificationLevel getQualificationLevel() { return qualificationLevel; }
+//     public void setQualificationLevel(QualificationLevel qualificationLevel) { this.qualificationLevel = qualificationLevel; }
+
+//     public String getTitle() { return title; }
+//     public void setTitle(String title) { this.title = title; }
+
+//     public String getTaskDescription() { return taskDescription; }
+//     public void setTaskDescription(String taskDescription) { this.taskDescription = taskDescription; }
+
+//     public Date getPublicationDate() { return publicationDate; }
+//     public void setPublicationDate(Date publicationDate) { this.publicationDate = publicationDate; }
+
+//     public Set<Sector> getSectors() { return sectors; }
+//     public void setSectors(Set<Sector> sectors) { this.sectors = sectors; }
+
+//     public Set<OfferMessage> getOfferMessages() { return offerMessages; }
+//     public void setOfferMessages(Set<OfferMessage> offerMessages) { this.offerMessages = offerMessages; }
+// }
+
+
+
+
+
+// // package fr.atlantique.imt.inf211.jobmngt.entity;
+
+// // import java.util.Date;
+// // import java.util.HashSet;
+// // import java.util.Set;
+
+// // import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+// // import jakarta.persistence.Column;
+// // import jakarta.persistence.Entity;
+// // import jakarta.persistence.FetchType;
+// // import jakarta.persistence.GeneratedValue;
+// // import jakarta.persistence.GenerationType;
+// // import jakarta.persistence.Id;
+// // import jakarta.persistence.JoinColumn;
+// // import jakarta.persistence.JoinTable;
+// // import jakarta.persistence.ManyToMany;
+// // import jakarta.persistence.ManyToOne;
+// // import jakarta.persistence.OneToMany;
+// // import jakarta.persistence.SequenceGenerator;
+// // import jakarta.persistence.Table;
+// // import jakarta.persistence.Temporal;
+// // import jakarta.persistence.TemporalType;
+
+// // @Entity
+// // @Table(name="joboffer", schema="public")
+// // @JsonIgnoreProperties({"offerMessages"}) // ✅ Évite la surcharge JSON circulaire
+// // public class JobOffer implements java.io.Serializable {
+
+// //     @Id
+// //     @SequenceGenerator(name = "JOBOFFER_ID_GENERATOR", sequenceName = "JOBOFFER_ID_SEQ", allocationSize = 1)
+// //     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "JOBOFFER_ID_GENERATOR")
+// //     @Column(name="id", unique = true, nullable = false)
+// //     private int id;
+
+// //     @ManyToOne(fetch = FetchType.LAZY)
+// //     @JoinColumn(name = "compid", nullable = false)
+// //     private Company company;
+
+// //     @ManyToOne(fetch = FetchType.LAZY)
+// //     @JoinColumn(name = "qualiflevelid", nullable = false)
+// //     private QualificationLevel qualificationLevel;
+
+// //     @Column(name="title", nullable = false, length = 50)
+// //     private String title;
+
+// //     @Column(name="taskdescription")
+// //     private String taskDescription;
+
+// //     @Temporal(TemporalType.DATE)
+// //     @Column(name="publicationdate")
+// //     private Date publicationDate;
+
+// //     @ManyToMany(fetch = FetchType.LAZY)
+// //     @JoinTable(name="indexjoboffersector", schema="public",
+// //         joinColumns = { @JoinColumn(name="jobofferid", nullable = false, updatable = false) },
+// //         inverseJoinColumns = { @JoinColumn(name="sectorid", nullable = false, updatable = false) })
+// //     @JsonIgnoreProperties({"applications", "jobOffers"}) //  Empêche les boucles JSON infinies
+// //     private Set<Sector> sectors = new HashSet<>();
+
+// //     @OneToMany(fetch = FetchType.LAZY, mappedBy = "jobOffer") //  Correction du mappedBy
+// //     private Set<OfferMessage> offerMessages = new HashSet<>();
+
+// //     public JobOffer() {}
+
+// //     public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title) {
+// //         this.id = id;
+// //         this.company = company;
+// //         this.qualificationLevel = qualificationLevel;
+// //         this.title = title;
+// //     }
+
+// //     public JobOffer(int id, Company company, QualificationLevel qualificationLevel, String title, 
+// //                     String taskDescription, Date publicationDate, Set<Sector> sectors, Set<OfferMessage> offerMessages) {
+// //         this.id = id;
+// //         this.company = company;
+// //         this.qualificationLevel = qualificationLevel;
+// //         this.title = title;
+// //         this.taskDescription = taskDescription;
+// //         this.publicationDate = publicationDate;
+// //         this.sectors = sectors;
+// //         this.offerMessages = offerMessages;
+// //     }
+
+// //     public int getId() { return id; }
+// //     public void setId(int id) { this.id = id; }
+
+// //     public Company getCompany() { return company; }
+// //     public void setCompany(Company company) { this.company = company; }
+
+// //     public QualificationLevel getQualificationLevel() { return qualificationLevel; }
+// //     public void setQualificationLevel(QualificationLevel qualificationLevel) { this.qualificationLevel = qualificationLevel; }
+
+// //     public String getTitle() { return title; }
+// //     public void setTitle(String title) { this.title = title; }
+
+// //     public String getTaskDescription() { return taskDescription; }
+// //     public void setTaskDescription(String taskDescription) { this.taskDescription = taskDescription; }
+
+// //     public Date getPublicationDate() { return publicationDate; }
+// //     public void setPublicationDate(Date publicationDate) { this.publicationDate = publicationDate; }
+
+// //     public Set<Sector> getSectors() { return sectors; }
+// //     public void setSectors(Set<Sector> sectors) { this.sectors = sectors; }
+
+// //     public Set<OfferMessage> getOfferMessages() { return offerMessages; }
+// //     public void setOfferMessages(Set<OfferMessage> offerMessages) { this.offerMessages = offerMessages; }
+// // }
+
+
+>>>>>>> d9a17a2 (new_feat)
diff --git a/src/main/resources/templates/jobOffer/jobOfferForm.html b/src/main/resources/templates/jobOffer/jobOfferForm.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ca49b5302a9d081cc88bbf048edc0db161e2a9e
--- /dev/null
+++ b/src/main/resources/templates/jobOffer/jobOfferForm.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+    <title>Créer une offre d'emploi</title>
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
+</head>
+<body>
+
+<div class="container mt-4">
+    <h2 class="text-center mb-4">Créer une offre d'emploi</h2>
+
+    <form th:action="@{/jobs/save}" th:object="${jobOffer}" method="post">
+        
+        <div class="mb-3">
+            <label class="form-label">Titre :</label>
+            <input type="text" class="form-control" th:field="*{title}" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Description :</label>
+            <textarea class="form-control" rows="3" th:field="*{taskDescription}" required></textarea>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Date de publication :</label>
+            <input type="date" class="form-control" th:field="*{publicationDate}" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Entreprise :</label>
+            <select class="form-select" th:field="*{company}">
+                <option value="">-- Sélectionner une entreprise --</option>
+                <option th:each="company : ${companies}" 
+                        th:value="${company.id}" 
+                        th:text="${company.denomination}" 
+                        th:selected="${company.id == jobOffer.company?.id}"></option>
+                </option>
+            </select>
+            
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Niveau de qualification :</label>
+            <select class="form-select" th:field="*{qualificationLevel}">
+                <option value="">Sélectionner un niveau de qualification</option>
+                <option th:each="level : ${qualificationLevels}" 
+                        th:value="${level.id}" 
+                        th:text="${level.label}"
+                        th:selected="${level.id == jobOffer.qualificationLevel?.id}">
+                </option>
+            </select>
+            
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Secteurs d'activité :</label>
+            <select class="form-select" multiple th:name="sectorIds" required>
+                <option th:each="sector : ${sectors}" th:value="${sector.id}" th:text="${sector.label}"></option>
+            </select>
+            <small class="form-text text-muted">Maintenez "Ctrl" (ou "Cmd" sur Mac) pour sélectionner plusieurs secteurs.</small>
+        </div>
+
+        <div class="text-center">
+            <button type="submit" class="btn btn-success">Créer</button>
+            <a href="/jobs" class="btn btn-secondary">Retour</a>
+        </div>
+
+    </form>
+</div>
+
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CandidateController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CandidateController.class
index 034a4816d5c366e2990a916e824458867e368983..579957c653e3aa7eab385453e60b4041dde48fdd 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CandidateController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/CandidateController.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.class
new file mode 100644
index 0000000000000000000000000000000000000000..b365da8ce8aa989128b15e82cb51b77e5c72bf9b
Binary files /dev/null and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/JobOfferController.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class
index a192bc80992984f36a4c4d20b52f60a87282e06f..98cf3b272d023db55d6abbd8ff8b653c15631e83 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/QualificationLevelController.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class
index ed3e253a93495fd012ddec42c8bee89ac98d2b53..55f4edd1d63c3a3fff908f8cdbd86d838c6098b3 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestApplicationDaoController.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCompanyDaoController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCompanyDaoController.class
index ced7c4abbb028e946bde3a8abd451803079c47fe..c1e513b3356c1f869aa61853b93a5dc1f6c0a331 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCompanyDaoController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestCompanyDaoController.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestJobOfferDaoController.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestJobOfferDaoController.class
index 2407686cf357bd91f10c131f30074a5af0b5ba0b..0f7f231d71b0380957d6fa28e13e6cbbe1384fba 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestJobOfferDaoController.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/controller/TestJobOfferDaoController.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class
index 8c9c5a69cb587e39f2cad47fbcb3968ad0ed3e69..c5c2e0b87938cb25bf348a5e06f72124db05bfdf 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/ApplicationDao.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class
index 55b7090135c7e5ac4e8850371f500b20ca3e0ac6..26dd2232e49722cb6f51ad44c63f3570263091e9 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CandidateDao.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class
index aab7b98c5433f7c7090af6f0bedf888361f1b168..e8cbbb27465da1b471bda57e2301e8e156758de8 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/CompanyDao.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class
index e0a3941d0b8dfaf6fbcfe0e17e15c2d0228b2a1d..8135d3d754e03900af1d7f62cd7ac4372c63ceb3 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/JobOfferDao.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class
index b21f278c1e8896ad2f35c7f18a051f72769ba46a..8007f008519c4bf388d1662bebad7f2dcaa43986 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/QualificationLevelDao.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class
index 164c1d2f2e7b6ea44acf8f417d9a23c6e5535d81..8fa07a9b22d47bb7aa418cb98955b2c104eef2f9 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/dao/SectorDao.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class
index 572bd81d49af528d4f85be3005e84686055e7fca..a1798658fa1cd8eafa8efd9d54d46ff187903e09 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Application.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class
index c6f8223ef9574c61988370e484b5d85c302117df..4b6589240fa1bb74d160a97f895a5bee30bdec99 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Company.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class
index 3e622ed54553af0343ace975a6787bc0b52125ad..f84b25d7363c5ecf07ef416fee886eddaba28c0b 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/JobOffer.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class
index c3808951a49b5bab19ef144587e807649ef7254b..2bf7663fdb299a1f49f3cfa134e7ee56109f1ff1 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/OfferMessage.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class
index b9fff9b0711bc03004b71f3a6436d5583a60c8ae..79b9c5db3994ec9fc109e6191645f40a949a30ff 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/QualificationLevel.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class
index 4a368de5745fae2cbcee9180b53724f6df60f07a..dc2efbc4ec65c937d69e1b36c9c0b999dadd6a65 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/entity/Sector.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class
index 3228527ea8ab8d6aa2fbdc25684e9fe6230ed4e0..b7d4f38bb88c61a88aa0531663e2870e6d6b3e81 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/AppUserServiceImpl.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/ApplicationService.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/ApplicationService.class
index e69c4e36058d14d7685097aadf83d243bab68fcf..f6f19b603c614181203001c8186f8c52ebb5948d 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/ApplicationService.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/ApplicationService.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateService.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateService.class
index 9f0685154fb00d5101ae34c83ffb2ad0fb37888e..bb1147bab3d2cc1892c35fc0c6dd92a77f103947 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateService.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateService.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateServiceImpl.class
index 39619aa907c3e02be2c0dc1bc5928c968d156020..b8bf7550a4f4a126cfc33beb4f2ddd18b1404a4d 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/CandidateServiceImpl.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class
index 08ec5d7cb97e28251759ac2b59b95f53c45be192..c885e0a74bd1b5eaa3b07234d30f4578f8ad8550 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/QualificationLevelServiceImpl.class differ
diff --git a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class
index f334aa308956ab38259b622f4bcc075815866557..4d066b21b90cb81b0171f088ab548a005f29fb95 100644
Binary files a/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class and b/target/classes/fr/atlantique/imt/inf211/jobmngt/service/SectorServiceImpl.class differ
diff --git a/target/classes/templates/jobOffer/jobOfferForm.html b/target/classes/templates/jobOffer/jobOfferForm.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ca49b5302a9d081cc88bbf048edc0db161e2a9e
--- /dev/null
+++ b/target/classes/templates/jobOffer/jobOfferForm.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+    <title>Créer une offre d'emploi</title>
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
+</head>
+<body>
+
+<div class="container mt-4">
+    <h2 class="text-center mb-4">Créer une offre d'emploi</h2>
+
+    <form th:action="@{/jobs/save}" th:object="${jobOffer}" method="post">
+        
+        <div class="mb-3">
+            <label class="form-label">Titre :</label>
+            <input type="text" class="form-control" th:field="*{title}" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Description :</label>
+            <textarea class="form-control" rows="3" th:field="*{taskDescription}" required></textarea>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Date de publication :</label>
+            <input type="date" class="form-control" th:field="*{publicationDate}" required>
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Entreprise :</label>
+            <select class="form-select" th:field="*{company}">
+                <option value="">-- Sélectionner une entreprise --</option>
+                <option th:each="company : ${companies}" 
+                        th:value="${company.id}" 
+                        th:text="${company.denomination}" 
+                        th:selected="${company.id == jobOffer.company?.id}"></option>
+                </option>
+            </select>
+            
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Niveau de qualification :</label>
+            <select class="form-select" th:field="*{qualificationLevel}">
+                <option value="">Sélectionner un niveau de qualification</option>
+                <option th:each="level : ${qualificationLevels}" 
+                        th:value="${level.id}" 
+                        th:text="${level.label}"
+                        th:selected="${level.id == jobOffer.qualificationLevel?.id}">
+                </option>
+            </select>
+            
+        </div>
+
+        <div class="mb-3">
+            <label class="form-label">Secteurs d'activité :</label>
+            <select class="form-select" multiple th:name="sectorIds" required>
+                <option th:each="sector : ${sectors}" th:value="${sector.id}" th:text="${sector.label}"></option>
+            </select>
+            <small class="form-text text-muted">Maintenez "Ctrl" (ou "Cmd" sur Mac) pour sélectionner plusieurs secteurs.</small>
+        </div>
+
+        <div class="text-center">
+            <button type="submit" class="btn btn-success">Créer</button>
+            <a href="/jobs" class="btn btn-secondary">Retour</a>
+        </div>
+
+    </form>
+</div>
+
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
+</body>
+</html>
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index 19cd16bfe2768ef781000793e8efc900f679b2a2..91f4584ec8c24562173a26de677227fd7de88128 100644
--- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 C:\Users\LENOVO\INF210\Docker\DockerExo\Docker_environment\JobmngmntVersionAFP\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\AppUser.java
 C:\Users\LENOVO\INF210\Docker\DockerExo\Docker_environment\JobmngmntVersionAFP\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Sector.java
 C:\Users\LENOVO\INF210\Docker\DockerExo\Docker_environment\JobmngmntVersionAFP\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\SectorServiceImpl.java
@@ -36,3 +37,47 @@ C:\Users\LENOVO\INF210\Docker\DockerExo\Docker_environment\JobmngmntVersionAFP\s
 C:\Users\LENOVO\INF210\Docker\DockerExo\Docker_environment\JobmngmntVersionAFP\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CandidateService.java
 C:\Users\LENOVO\INF210\Docker\DockerExo\Docker_environment\JobmngmntVersionAFP\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CandidateServiceImpl.java
 C:\Users\LENOVO\INF210\Docker\DockerExo\Docker_environment\JobmngmntVersionAFP\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\QualificationLevelServiceImpl.java
+=======
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\JobmngtApplication.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestJobOfferDaoController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CompanyServiceImpl.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\JobOfferServiceImpl.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\OfferMessage.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Company.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\JobOfferService.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\CompanyController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\converter\QualificationLevelConverter.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestCompanyDaoController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\converter\CompanyConverter.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\AppUser.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Candidate.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\QualificationLevel.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Sector.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\CandidateDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\config\WebConfig.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\AppUserServiceImpl.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\CompanyService.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\JobOfferDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\ApplicationMessageDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\OfferMessageDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\SectorServiceImpl.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\JobOffer.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\SectorController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\SectorDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\CompanyDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\ApplicationMessage.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\AppUserService.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\QualificationLevelController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\JobOfferController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\LoginController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\PagesController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestApplicationDaoController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\QualificationLevelDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\SectorService.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\controller\TestCandidateDaoController.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\QualificationLevelService.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\AppUserDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\dao\ApplicationDao.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\service\QualificationLevelServiceImpl.java
+C:\Users\rania\Desktop\jobmngt\jobmngt\src\main\java\fr\atlantique\imt\inf211\jobmngt\entity\Application.java
+>>>>>>> d9a17a2 (new_feat)