diff --git a/api/src/main/java/cz/cvut/fel/sem/controller/QuizController.java b/api/src/main/java/cz/cvut/fel/sem/controller/QuizController.java
index cf25325f24fa060a474ced9e8e8754df0acb7dce..a763f9b09647417162b62aa062b3eba2a85bacf1 100644
--- a/api/src/main/java/cz/cvut/fel/sem/controller/QuizController.java
+++ b/api/src/main/java/cz/cvut/fel/sem/controller/QuizController.java
@@ -31,6 +31,13 @@ public class QuizController {
         return new ResponseEntity<>(headers, HttpStatus.CREATED);
     }
 
+    @CrossOrigin
+    @DeleteMapping(value = "/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseStatus(HttpStatus.NO_CONTENT)
+    public void deleteQuiz(@PathVariable Long id){
+        quizService.deleteQuizById(id);
+    }
+
     @CrossOrigin
     @GetMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
     public Quiz getQuiz(@PathVariable Long id) {
diff --git a/api/src/main/java/cz/cvut/fel/sem/model/quizQuestion/Quiz.java b/api/src/main/java/cz/cvut/fel/sem/model/quizQuestion/Quiz.java
index dd148dd156359b2d4f6fd6974e9a0661a9b5ef02..98df499fbf39e5f3556f0bcba398a48706da9588 100644
--- a/api/src/main/java/cz/cvut/fel/sem/model/quizQuestion/Quiz.java
+++ b/api/src/main/java/cz/cvut/fel/sem/model/quizQuestion/Quiz.java
@@ -17,7 +17,7 @@ import java.util.List;
 @Getter
 @Setter
 public class Quiz extends AbstractEntity {
-    @OneToMany(mappedBy = "quiz", cascade = CascadeType.PERSIST)
+    @OneToMany(mappedBy = "quiz", cascade = CascadeType.ALL)
     private List<Question> questions;
     private String name;
 
diff --git a/api/src/main/java/cz/cvut/fel/sem/service/QuizService.java b/api/src/main/java/cz/cvut/fel/sem/service/QuizService.java
index fb3703f026d46af5522d860964335c12e14b7836..99dbd0ef77a302e14a9ebc7e7fe7e23a33d509c5 100644
--- a/api/src/main/java/cz/cvut/fel/sem/service/QuizService.java
+++ b/api/src/main/java/cz/cvut/fel/sem/service/QuizService.java
@@ -51,6 +51,12 @@ public class QuizService {
         return foundQuiz;
     }
 
+    @Transactional
+    public void deleteQuizById(Long id){
+        Quiz foundQuiz = getQuizById(id);
+        quizRepository.delete(foundQuiz);
+    }
+
     @Transactional
     public List<QuizDto> getAllQuizzes(){
         List<Quiz> quizzes = quizRepository.findAll();
diff --git a/ui/src/pages/home/Home.js b/ui/src/pages/home/Home.js
index 5ef04598b7be4d12715130cdb8ab0d952e07158a..9eadccef82a845b96469ceb8a9abad76bce41ac4 100644
--- a/ui/src/pages/home/Home.js
+++ b/ui/src/pages/home/Home.js
@@ -7,20 +7,38 @@ const Home = () => {
 
   const [quizes, setQuizes] = useState([]);
 
+  const findQuizById = (id) => {
+    let quizToReturn;
+    quizes.forEach(quiz => {
+      if(quiz.id === id){
+        quizToReturn = quiz
+      }
+    })
+    return quizToReturn
+  }
+
   const location = useLocation();
 
-  const [anchorEl, setAnchorEl] = React.useState(null);
-  const open = Boolean(anchorEl);
+  const anchorInitial = {
+    element: null,
+    id: 0
+  }
+
+  const [anchorEl, setAnchorEl] = React.useState(anchorInitial);
+  const open = Boolean(anchorEl.element);
 
-  const handleOptionsOpen = (event) => {
-    setAnchorEl(event.currentTarget);
+  const handleOptionsOpen = (event, idToSet) => {
+    setAnchorEl({
+      element: event.currentTarget,
+      id: idToSet
+    });
   };
 
   const handleClose = () => {
-    setAnchorEl(null);
+    setAnchorEl(anchorInitial);
   };
 
-  useEffect(() => {
+  const fetchAllQuizzes = () => {
     fetch("http://localhost:8080/betterKahoot/quiz", {
       method: 'GET',
       headers: {
@@ -36,28 +54,29 @@ const Home = () => {
       setQuizes(quizes);
     })
     .catch(error => console.log(error));
-  }, [location])
-
-  function getTextWidth(text, font = "Roboto") {
-    text = text.toLowerCase();
-    const canvas = document.createElement('canvas');
-    const context = canvas.getContext('2d');
-  
-    context.font = font || getComputedStyle(document.body).font;
-    const neco = context.measureText(text).width;
-    return neco;
   }
 
-  function reformatText(text){
-    let newString = ""
-    let chars = 30;
-    while(getTextWidth(text.slice(0, chars)) < 160){
-      chars += 1
-    }
-    newString += text.slice(0, chars - 3) + "...";
-    return newString
+  const handleDeleteQuiz = () => {
+    console.log(anchorEl.id)
+    fetch("http://localhost:8080/betterKahoot/quiz/" + anchorEl.id, {
+      method: 'DELETE',
+      headers: {
+        'Content-Type': 'application/json',
+      }
+    })
+    .then(response => {
+      if(response.status === 204){
+        handleClose()
+        fetchAllQuizzes()
+      }
+    })
+    .catch(error => console.log(error));
   }
 
+  useEffect(() => {
+    fetchAllQuizzes()
+  }, [location])
+
   return (
     <Grid
       container
@@ -86,7 +105,9 @@ const Home = () => {
             </Typography>
           </Grid>
           {quizes.map((quiz) => 
-            <Grid item key={quiz.id}>
+            <Grid 
+              item key={quiz.id} id={quiz.id}
+            >
               <TextField
                 id="demo-positioned-button"
                 disabled
@@ -94,7 +115,7 @@ const Home = () => {
                 aria-controls={open ? 'demo-positioned-menu' : undefined}
                 aria-haspopup="true"
                 aria-expanded={open ? 'true' : undefined}
-                onClick={handleOptionsOpen}
+                onClick={(event) => handleOptionsOpen(event, quiz.id)}
                 color="neutral" 
                 size="small"
                 sx={{width: '300px', textTransform: 'none', borderRadius: 0}}
@@ -113,7 +134,7 @@ const Home = () => {
               <Menu
                 id="demo-positioned-menu"
                 aria-labelledby="demo-positioned-button"
-                anchorEl={anchorEl}
+                anchorEl={anchorEl.element}
                 open={open}
                 onClose={handleClose}
                 anchorOrigin={{
@@ -126,21 +147,21 @@ const Home = () => {
                 }}
               >
                 <MenuItem
-                  component={NavLink} 
+                  component={NavLink}
                   to={{
                     pathname:"/quiz",
-                    state: quiz
+                    state: findQuizById(anchorEl.id)
                   }}
                   onClick={handleClose}
                 >
                   Edit
                 </MenuItem>
-                <MenuItem onClick={handleClose}>Delete</MenuItem>
+                <MenuItem onClick={handleDeleteQuiz}>Delete</MenuItem>
                 <MenuItem 
                   component={NavLink} 
                   to={{
                     pathname:"/startQuiz",
-                    state: quiz
+                    state: findQuizById(anchorEl.id)
                   }}
                   onClick={handleClose}
                 >
diff --git a/ui/src/pages/quiz/QuestionCreator.js b/ui/src/pages/quiz/QuestionCreator.js
index 16e7e6dd1f1358a9c9aca173ce4a9be6ca351e3b..576c0386167b73e75733a5fbe11a75fdf2b2c291 100644
--- a/ui/src/pages/quiz/QuestionCreator.js
+++ b/ui/src/pages/quiz/QuestionCreator.js
@@ -201,7 +201,7 @@ const QuestionCreator = (props) => {
             placeholder="Question name"
           />
         </Grid>
-        <Grid item xs width={'80%'} sx={{minHeight: '326px'}}>
+        <Grid item xs width={'80%'} sx={{minHeight: language === languageTypes.PLAINTEXT ? '210px' : '326px' }}>
           <Grid
            container 
            direction={"row"}