diff --git a/pom.xml b/pom.xml
index 8dfb52e0a06c654d391bf3c7bfbf0a2e4b992e5d..b56ea8baa24302c1ffef8a954e7556af54819267 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,9 +59,14 @@
 		    <artifactId>json</artifactId>
 		    <version>20190722</version>
 		</dependency>
-		
-		
-	</dependencies>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.6</version>
+        </dependency>
+
+
+    </dependencies>
 
 	<build>
 		<plugins>
diff --git a/src/main/java/isima/f2/RamassagePoubleDepotApplication.java b/src/main/java/isima/f2/RamassagePoubleDepotApplication.java
index 30e81ab104214aef3fbd46c699de1508162031f5..bfb8e6d2de28905b7fe65830c3407e0bc6866c35 100644
--- a/src/main/java/isima/f2/RamassagePoubleDepotApplication.java
+++ b/src/main/java/isima/f2/RamassagePoubleDepotApplication.java
@@ -1,5 +1,6 @@
 package isima.f2;
 
+import isima.f2.services.ThreadSimulation;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -8,6 +9,9 @@ public class RamassagePoubleDepotApplication {
 
 	public static void main(String[] args) {
 		SpringApplication.run(RamassagePoubleDepotApplication.class, args);
+		System.out.println("=======================>Le nom du thread principal est " + Thread.currentThread().getName());
+		ThreadSimulation t = new ThreadSimulation();
+		t.start();
 	}
 
 }
diff --git a/src/main/java/isima/f2/contrats/IPoubelle.java b/src/main/java/isima/f2/contrats/IPoubelle.java
index 59f832f4114ac97ce85a735c7d8b33600de88f70..f36c38946e880e6212c8fc60587c6c2ea341eb30 100644
--- a/src/main/java/isima/f2/contrats/IPoubelle.java
+++ b/src/main/java/isima/f2/contrats/IPoubelle.java
@@ -12,4 +12,6 @@ public interface IPoubelle {
 	public Optional<Poubelle> getPoubelle(Long id);
 	public List<Poubelle> getPoubelles();
 	public void viderPoubelle(long id);
+	public void updateContenuPoubelle(long id, double contenu);
+	public void creerPoubelle(Poubelle nouvellePoubelle);
 }
diff --git a/src/main/java/isima/f2/controllers/PoubelleController.java b/src/main/java/isima/f2/controllers/PoubelleController.java
index 2a6153d7cbc6ccfb584c38443b1c250121a35c47..2ebcb3570af443a090e0f52ea4c95852b69ad16b 100644
--- a/src/main/java/isima/f2/controllers/PoubelleController.java
+++ b/src/main/java/isima/f2/controllers/PoubelleController.java
@@ -3,20 +3,16 @@ package isima.f2.controllers;
 import java.util.List;
 import java.util.Map;
 
+import com.google.gson.Gson;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import isima.f2.model.Poubelle;
 import isima.f2.services.ImpPoubelle;
 
 @RestController
 @RequestMapping("poubelles")
+@CrossOrigin(origins = "http://localhost:4200")
 public class PoubelleController {
 
 	@Autowired
@@ -45,4 +41,20 @@ public class PoubelleController {
 	public String testpost(@RequestParam Map <String, String> allParams) {
 	    return "Les paramètres sont"+ allParams.entrySet ();
 	}
+
+	@PostMapping ("/nouvelle")
+	@ResponseBody
+	public String creerPoubelle(@RequestParam Map <String, String> allParams) {
+		String poubelleJSON =  allParams.get("poubelle");
+		poubelleJSON = poubelleJSON.replace("Poubelle","");
+		System.out.println("Poubellllllllllllleeeeeeeee ******** : " + poubelleJSON);
+		Gson gson = new Gson();
+		Poubelle nouvellePoubelle = gson.fromJson(poubelleJSON, Poubelle.class);
+		//update poubelle id ===> last id + 1
+		nouvellePoubelle.setId((long)(poubelles.getPoubelles().size()+1));
+		//nouvellePoubelle.setId(6L);
+		System.out.println("**************** " + nouvellePoubelle.toString() + "****************");
+		poubelles.creerPoubelle(nouvellePoubelle);
+		return "La nouvelle poubelle a été créée avec succes";
+	}
 }
diff --git a/src/main/java/isima/f2/dao/IPoubelleDAO.java b/src/main/java/isima/f2/dao/IPoubelleDAO.java
index 1e279ae4dca69b997d0e4d9d480e107cb120f664..77d48da772bafcb4ecd6bd3463f8360600f24d38 100644
--- a/src/main/java/isima/f2/dao/IPoubelleDAO.java
+++ b/src/main/java/isima/f2/dao/IPoubelleDAO.java
@@ -15,4 +15,10 @@ public interface IPoubelleDAO extends JpaRepository<Poubelle, Long> {
     @Query("UPDATE Poubelle p SET p.contenu = 0 WHERE p.id = :id")
     int updatePoubelleSetCapacityZero(@Param("id") long id);
 
+
+    @Modifying
+    @Transactional
+    @Query("UPDATE Poubelle p SET p.contenu = :contenu WHERE p.id = :id")
+    int updatePoubelleSetCapacity(@Param("id") long id, @Param("contenu") double contenu);
+
 }
diff --git a/src/main/java/isima/f2/services/ImpPoubelle.java b/src/main/java/isima/f2/services/ImpPoubelle.java
index 70457c65a141c7824213d7807f3446dfa4ae1933..e5cc182230c0773b60eb4905c8175f4c3444c90e 100644
--- a/src/main/java/isima/f2/services/ImpPoubelle.java
+++ b/src/main/java/isima/f2/services/ImpPoubelle.java
@@ -14,7 +14,11 @@ import isima.f2.model.Poubelle;
 public class ImpPoubelle implements IPoubelle{
 	
 	@Autowired
-	IPoubelleDAO poubelleDAO ; 
+	IPoubelleDAO poubelleDAO ;
+
+	public ImpPoubelle(){
+
+    }
 
 	@Override
 	public Poubelle ajouterPoubelle(Poubelle poubelle) {
@@ -33,7 +37,7 @@ public class ImpPoubelle implements IPoubelle{
 
 	@Override
 	public Optional<Poubelle> getPoubelle(Long id) {
-		return null;
+		return poubelleDAO.findById(id);
 	}
 
 	@Override
@@ -46,4 +50,13 @@ public class ImpPoubelle implements IPoubelle{
 		poubelleDAO.updatePoubelleSetCapacityZero(id);
 	}
 
+    @Override
+    public void updateContenuPoubelle(long id, double contenu) {
+        poubelleDAO.updatePoubelleSetCapacity(id,contenu);
+    }
+
+	@Override
+	public void creerPoubelle(Poubelle nouvellePoubelle) {
+		poubelleDAO.save(nouvellePoubelle);
+	}
 }
diff --git a/src/main/java/isima/f2/services/ThreadSimulation.java b/src/main/java/isima/f2/services/ThreadSimulation.java
new file mode 100644
index 0000000000000000000000000000000000000000..421e1805faa9a132c7b84fbf60177b89f35d7f90
--- /dev/null
+++ b/src/main/java/isima/f2/services/ThreadSimulation.java
@@ -0,0 +1,34 @@
+package isima.f2.services;
+
+import isima.f2.model.Poubelle;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Optional;
+
+public class ThreadSimulation extends Thread {
+    @Autowired
+    ImpPoubelle poubelleService;
+
+    public ThreadSimulation() {
+        super();
+    }
+
+    public void run() {
+        long nbGenere;
+        /*int nbPoubelles = poubelleService.getPoubelles().size();
+        System.out.println("Le nombre de poubelle dans la base est : " + nbPoubelles);*/
+        while (true){
+            //Generation du nombre aléatoire
+            nbGenere = (long)(Math.random() * ((5 - 1) + 1)) + 1;
+            //Optional<Poubelle> p = poubelleService.getPoubelle(nbGenere);
+            //System.out.println("Poubelle : " + p.toString());
+            System.out.println("=================================> Nombrre generé : " + nbGenere);
+            //poubelleService.updateContenuPoubelle();
+            try {
+                Thread.sleep(2000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+}