diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/WasteController.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/WasteController.java
index c40c302cbb4be14b3834d3789ebc8d2506868e32..b7c0bc65b0e924f316cad1d172c5d7df16aa876e 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/WasteController.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/WasteController.java
@@ -1,2 +1,42 @@
-package ntnu.idatt2016.v233.SmartMat.controller.group;public class WasteController {
+package ntnu.idatt2016.v233.SmartMat.controller.group;
+
+import lombok.AllArgsConstructor;
+import ntnu.idatt2016.v233.SmartMat.entity.Waste;
+import ntnu.idatt2016.v233.SmartMat.service.group.WasteService;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+@AllArgsConstructor
+@RestController
+@RequestMapping("/api/waste")
+public class WasteController {
+
+    private final WasteService wasteService;
+
+    /**
+     * Saves a new waste
+     *
+     * @param waste the waste to save
+     * @return a ResponseEntity containing the saved waste if it was saved successfully, or a 400 if it wasn't
+     */
+    @PostMapping("/waste")
+    public ResponseEntity<Waste> createWaste(@RequestBody Waste waste) {
+        if(wasteService.getWasteById(waste.getWasteId()).isPresent()) {
+            return ResponseEntity.badRequest().build();
+        }
+        return ResponseEntity.ok(wasteService.createWaste(waste));
+    }
+
+    /**
+     * Gets a waste by its id
+     *
+     * @param wasteId the id of the waste
+     * @return a ResponseEntity containing the waste if it exists, or a 404 if it doesn't
+     */
+    @GetMapping("/waste/{wasteId}")
+    public ResponseEntity<Waste> getWasteById(@PathVariable("wasteId") long wasteId) {
+        return wasteService.getWasteById(wasteId)
+                .map(ResponseEntity::ok)
+                .orElseGet(() -> ResponseEntity.notFound().build());
+    }
 }
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/Waste.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/Waste.java
index 61509ad6c785abc81d2b2baa390c6ea6d2bbe893..a41714a597901942f7672d1a0315bac3be44a673 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/Waste.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/Waste.java
@@ -26,10 +26,10 @@ public class Waste {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "waste_id")
-    long wasteID;
+    long wasteId;
 
     @Column(name = "group_id")
-    long groupID;
+    long groupId;
 
     @Column(name = "ean")
     long ean;
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/group/WasteRepository.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/group/WasteRepository.java
index dcb350ea2438a811f30ffd140585e59e8123a96e..3b683303023f8a28260bce61be48323d6da453c9 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/group/WasteRepository.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/group/WasteRepository.java
@@ -1,2 +1,8 @@
-package ntnu.idatt2016.v233.SmartMat.repository.group;public interface WastesRepository {
+package ntnu.idatt2016.v233.SmartMat.repository.group;
+
+import ntnu.idatt2016.v233.SmartMat.entity.Waste;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface WasteRepository extends JpaRepository<Waste, Long> {
+
 }
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/WasteService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/WasteService.java
index 418e26b2ddd6a3091425d5853e1df90ec16c9447..e8bd9bc53de7d229a2985f2737a557f3976cea15 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/WasteService.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/WasteService.java
@@ -1,12 +1,33 @@
 package ntnu.idatt2016.v233.SmartMat.service.group;
 
 import lombok.AllArgsConstructor;
+import ntnu.idatt2016.v233.SmartMat.entity.Waste;
+import ntnu.idatt2016.v233.SmartMat.repository.group.WasteRepository;
 import org.springframework.stereotype.Service;
 
+import java.util.Optional;
+
 @Service
 @AllArgsConstructor
-public class WasteRepository {
+public class WasteService {
     private final WasteRepository wasteRepository;
 
+    /**
+     * Creates a new waste
+     *
+     * @param waste the waste to create
+     * @return the created waste
+     */
+    public Waste createWaste(Waste waste) {
+        return wasteRepository.save(waste);
+    }
 
+    /**
+     * Gets a waste by its id
+     * @param id the id of the waste
+     * @return an optional containing the waste if it exists
+     */
+    public Optional<Waste> getWasteById(long id) {
+        return wasteRepository.findById(id);
+    }
 }
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/WasteServiceTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/WasteServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..8678692da2132d776150fd4dbb027f6384a63d61
--- /dev/null
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/WasteServiceTest.java
@@ -0,0 +1,74 @@
+package ntnu.idatt2016.v233.SmartMat.service.group;
+
+import ntnu.idatt2016.v233.SmartMat.entity.Waste;
+import ntnu.idatt2016.v233.SmartMat.repository.group.WasteRepository;
+import ntnu.idatt2016.v233.SmartMat.service.group.WasteService;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.sql.Timestamp;
+import java.util.Optional;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.when;
+
+public class WasteServiceTest {
+    private WasteService wasteService;
+
+    @Mock
+    private WasteRepository wasteRepository;
+
+    @BeforeEach
+    public void setUp() {
+        MockitoAnnotations.openMocks(this);
+        wasteService = new WasteService(wasteRepository);
+    }
+
+    @Test
+    public void testCreateWaste() {
+        Waste waste = Waste.builder()
+                .groupId(1L)
+                .ean(1234567890123L)
+                .timestamp(new Timestamp(System.currentTimeMillis()))
+                .amount(1.0)
+                .unit("kg")
+                .build();
+
+        Waste createdWaste = Waste.builder()
+                .wasteId(1L)
+                .groupId(1L)
+                .ean(1234567890123L)
+                .timestamp(waste.getTimestamp())
+                .amount(1.0)
+                .unit("kg")
+                .build();
+
+        when(wasteRepository.save(waste)).thenReturn(createdWaste);
+
+        Waste result = wasteService.createWaste(waste);
+
+        assertEquals(createdWaste, result);
+    }
+
+    @Test
+    public void testGetWasteById() {
+        Waste waste = Waste.builder()
+                .wasteId(1L)
+                .groupId(1L)
+                .ean(1234567890123L)
+                .timestamp(new Timestamp(System.currentTimeMillis()))
+                .amount(1.0)
+                .unit("kg")
+                .build();
+
+        when(wasteRepository.findById(1L)).thenReturn(Optional.of(waste));
+
+        Optional<Waste> result = wasteService.getWasteById(1L);
+
+        assertTrue(result.isPresent());
+        assertEquals(waste, result.get());
+    }
+}
diff --git a/target/classes/application.properties b/target/classes/application.properties
index f27fe6e4a1a54d1ad0ea483c42161a8973d6190f..b13fdb2403ba71eb04d48c3180a862f33be4f843 100644
--- a/target/classes/application.properties
+++ b/target/classes/application.properties
@@ -14,7 +14,8 @@ spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialec
 # Hibernate ddl auto (create, create-drop, validate, update)
 spring.jpa.hibernate.ddl-auto = update
 
-
+# Set CORS configuration origin address
+domain.domain=https://smartmat.app
 
 ## info