diff --git a/public/index.html b/public/index.html
index feecad763bbff1313ce8776feeb0fb524f8c07da..226298c60be7ac3b1ec00189e331b52e314c59aa 100644
--- a/public/index.html
+++ b/public/index.html
@@ -33,16 +33,19 @@
             <h3>Please select an option</h3>
           </div>
           <div>
-            <input onclick="handleTextRadioClick()" type="radio" id="huey" name="drone" value="huey" checked>
-            <label for="huey">I will enter text manually.</label></div>
+            <input onclick="handleTextRadioClick()" type="radio" id="manual" name="text-input-option" value="manual"
+              checked>
+            <label for="manual">I will enter text manually.</label></div>
           <div>
-            <input onclick="handleTextRadioClick()" type="radio" id="dewey" name="drone" value="dewey">
-            <label for="dewey">I have already calculated the text length.</label>
+            <input onclick="handleTextRadioClick()" type="radio" id="calculated" name="text-input-option"
+              value="calculated">
+            <label for="calculated">I have already calculated the text length.</label>
           </div>
           <div id="character-calculation-wrapper">
             <div>
               <textarea oninput="handleTextAreaChange()" placeholder="Enter text here..." class="box-input"
                 name="textarea" id="manual-text-entry" cols="90" rows="5" value=""></textarea>
+              <div id="textarea-validation" style="color: red;display: none;">Please enter text</div>
             </div>
             <div>
               <label for="calculatedTextCharacters">Total characters in text: </label>
@@ -54,25 +57,30 @@
             <label for="inputTextCharacters">Enter number of characters: </label>
             <input oninput="handleCharacterInputChange()" placeholder="e.g. 120" class="box-input" type="number"
               id="inputTextCharacters" name="inputTextCharacters" value="">
+            <div id="textCharacters-validation" style="color: red;display: none;">Please enter number of characters.</div>
           </div>
         </div>
         <div>
-          <label for="readerLevel">Select reader level:</label>
-          <select class="box-input" id="readerLevel">
+          <label for="readerLevel">Reader Level:</label>
+          <select class="box-input" id="readerLevel" onchange="readerLevelChangeEvent(event)">
+            <option value="">Select level</option>
             <option value="First Year">First Year</option>
             <option value="Second Year">Second Year</option>
             <option value="Third Year">Third Year</option>
             <option value="Fourth Year">Fourth Year</option>
           </select>
+          <div id="readerLevel-validation" style="color: red;display: none;">Please enter number of characters.</div>
         </div>
         <div>
-          <label for="readerLevel">Select category of the reader:</label>
-          <select class="box-input" id="readerLevel">
+          <label for="readerCategory">Reader Category:</label>
+          <select class="box-input" id="readerCategory" onchange="readerCategoryChangeEvent(event)">
+            <option value="">Select category</option>
             <option value="Mixed-ability group">Mixed-ability group</option>
             <option value="High-ability group">High-ability group</option>
             <option value="Good-ability group">Good-ability group</option>
             <option value="Average-ability group">Average-ability group</option>
           </select>
+          <div id="readerCategory-validation" style="color: red;display: none;">Please enter number of characters.</div>
         </div>
         <div>
           <div>
@@ -87,7 +95,7 @@
               <button onclick="showFeedbackForm()">Feedback</button>
             </div>
           </div>
-          
+
         </div>
         <div id="feedback-form" style="display: none;">
           <div class="title" style="padding-bottom: 12px; border-bottom: 1px solid #dddddd; margin-bottom: 10px;">
@@ -122,9 +130,10 @@
       </section>
     </section>
 
+    <script src="index.js" type="text/javascript"> </script>
+
     <!-- KEINE ÄNDERUNGEN NACH DIESER ZEILE -->
     <script src="settings.js"> </script>
-    <script src="index.js"> </script>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/public/index.js b/public/index.js
index 31a0f5a0a97f1c1995f203b7a4e66680a9aaee8f..33efa327ea97df77feb2b0bf1e450c8f59d79654 100644
--- a/public/index.js
+++ b/public/index.js
@@ -1,8 +1,15 @@
-let inputObj = {};
+let inputObj = {
+    textChoice: 'manual',
+    text: '',
+    textLength: '',
+    readerLevel: '',
+    readerCategory: ''
+};
 
 function handleTextRadioClick() {
-    let textChoice = document.querySelector('input[name="drone"]:checked').value;
+    let textChoice = document.querySelector('input[name="text-input-option"]:checked').value;
     console.log(textChoice);
+    inputObj.textChoice = textChoice;
     toggleElement('character-calculation-wrapper');
     toggleElement('manual-character-input');
 }
@@ -19,6 +26,7 @@ function toggleElement(id) {
 function handleTextAreaChange() {
     let value = document.getElementById("manual-text-entry").value;
     value = value.trim();
+    inputObj.text = value;
     let characters = value.split(' ').join('').length;
     setCharacterLength(characters);
     document.getElementById("calculatedTextCharacters").setAttribute('value', characters)
@@ -30,16 +38,59 @@ function handleCharacterInputChange() {
 }
 
 function setCharacterLength(characters) {
-    inputObj.characters = characters;
-    console.log('Character length: ' + inputObj.characters);
+    inputObj.textLength = characters;
+    console.log('Character length: ' + inputObj.textLength);
 }
 
 function calculateReadingTime() {
+    let isFormValid = validateForm();
     let x = document.getElementById('calculate-time-element');
     x.style.display = "block";
 }
 
+function validateForm() {
+    let invalidFields = 0;
+    if (inputObj.textChoice === 'manual' && inputObj.text === '') {
+        invalidFields++;
+        document.getElementById('textarea-validation').style.display = 'block';
+    } else {
+        document.getElementById('textarea-validation').style.display = 'none';
+    }
+
+    if (inputObj.textChoice === 'calculated' && (inputObj.textLength === '' || inputObj.textLength === 0)) {
+        invalidFields++;
+        document.getElementById('textCharacters-validation').style.display = 'block';
+    } else {
+        document.getElementById('textCharacters-validation').style.display = 'none';
+    }
+
+    if (inputObj.readerLevel === '') {
+        invalidFields++;
+        document.getElementById('readerLevel-validation').style.display = 'block';
+    } else {
+        document.getElementById('readerLevel-validation').style.display = 'none';
+    }
+
+    if (inputObj.readerCategory === '') {
+        invalidFields++;
+        document.getElementById('readerCategory-validation').style.display = 'block';
+    } else {
+        document.getElementById('readerCategory-validation').style.display = 'none';
+    }
+    
+}
+
 function showFeedbackForm() {
     let x = document.getElementById('feedback-form');
     x.style.display = "block";
 }
+
+function readerLevelChangeEvent(event) {
+    console.log(event.target.value)
+    inputObj.readerLevel = event.target.value;
+}
+
+function readerCategoryChangeEvent(event) {
+    console.log(event.target.value)
+    inputObj.readerCategory = event.target.value;
+}