diff --git a/src/components/Courses.vue b/src/components/Courses.vue
index f3a61e3ed7eb96b2b85fe2c6c6ed32ae9278b1bd..c5a2be2bf68558f7b7c680ea5e3ca3be4fa0b7bc 100644
--- a/src/components/Courses.vue
+++ b/src/components/Courses.vue
@@ -2,10 +2,10 @@
   <div class="content col-md-12">
     <div id="search_box" class="search_box col-md-4">
       <div class="entry_box-inner">
-        <a id="exportbutton" class="button" href="./exporttable">Tabelle exportieren</a>
+        <a id="editbutton" class="button" href="./editcourse" style="visibility: hidden">Eintrag bearbeiten</a>
         <a id="addbutton" class="button" href="./createcourse">neuen Eintrag hinzufügen</a>
-        <a id="editbutton" class="button" href="./editcourse">ausgewählten Eintrag bearbeiten</a>
-        <a id="deletebutton" class="button" href="./editcourse">ausgewählte Einträge löschen</a>
+        <a id="deletebutton" class="button" href="./deletecourse">ausgewählte Einträge löschen</a>
+        <a id="exportbutton" class="button" href="./exporttable">Tabelle exportieren</a>
       </div>
       <div class="search_box-inner">
         <i><img src="../assets/search.svg"></i>
@@ -16,7 +16,7 @@
       <tr>
         <th scope="row">
           <div class="form-check">
-            <input type="checkbox" class="form-check-input" id="checkbox_headerline">
+            <input name="checkbox" type="checkbox" class="form-check-input" id="checkbox_headerline" @click="checkAllBoxes">
             <label class="form-check-label" for="checkbox_headerline"></label>
           </div>
         </th>
@@ -34,10 +34,10 @@
         <th v-on:click="sortTable('kursleiter')"><img id="imgsortkursleiter" :src="require('../assets/'+sortImg)">Kursleiter</th>
         <th v-on:click="sortTable('notiz')"><img id="imgsortnotiz" :src="require('../assets/'+sortImg)">Notiz</th>
       </tr>
-      <tr v-for="row in filteredRows" :key="row.angebotsnummer">
+      <tr v-for="row in filteredRows" :key="row.id">
         <td scope="row">
           <div class="form-check">
-            <input type="checkbox" class="form-check-input" id="checkbox_tablerow">
+            <input type="checkbox" class="form-check-input" name="checkbox_tablerow" id="checkbox_tablerow" v-model="checkedBoxes" :value="row.id">
             <label class="form-check-label" for="checkbox_tablerow"></label>
           </div>
         </td>
@@ -64,20 +64,52 @@ export default {
   name: "Courses",
   data: function() {
     return {
-      rows: [
-        {angebotsnummer: 232, angebot: "Biologie", kursname: 'Neurobiologie', veranstaltungsart: 'regulärer Kurs', kursdatum: '23.08.2020', thema: '', kursort: 'T9 Hörsaal', begleitendeLehrkraft: 'Frau Muster', betreuendeStudenten: 'Max Miller', anzahlderAnwesenden: '34', anzahlderAngemeldeten: '12', kursleiter: 'Frau Test', notiz: ''},
-        {angebotsnummer: 23342, angebot: "ABiologie", kursname: 'bNeukkkrobiologie', veranstaltungsart: 'regulärer Kurs', kursdatum: '22.08.2020', thema: '', kursort: 'T9 Hörsaal', begleitendeLehrkraft: 'Frau Muster', betreuendeStudenten: 'Max Miller', anzahlderAnwesenden: '34', anzahlderAngemeldeten: '12', kursleiter: 'Frau Test', notiz: ''},
-        {angebotsnummer: 22, angebot: "Ciologie", kursname: 'ANeurobkiologie', veranstaltungsart: 'regulärer Kurs', kursdatum: '21.08.2020', thema: '', kursort: 'T9 Hörsaal', begleitendeLehrkraft: 'Frau Muster', betreuendeStudenten: 'Max Miller', anzahlderAnwesenden: '34', anzahlderAngemeldeten: '12', kursleiter: 'Frau Test', notiz: ''},
-        {angebotsnummer: 1342, angebot: "Diologie", kursname: 'cNeukkkrobiologie', veranstaltungsart: 'regulärer Kurs', kursdatum: '23.07.2020', thema: '', kursort: 'T9 Hörsaal', begleitendeLehrkraft: 'Frau Muster', betreuendeStudenten: 'Max Miller', anzahlderAnwesenden: '34', anzahlderAngemeldeten: '12', kursleiter: 'Frau Test', notiz: ''},
-        {angebotsnummer: 132, angebot: "Bdologie", kursname: 'eNeurobiologie', veranstaltungsart: 'regulärer Kurs', kursdatum: '23.08.2021', thema: '', kursort: 'T9 Hörsaal', begleitendeLehrkraft: 'Frau Muster', betreuendeStudenten: 'Max Miller', anzahlderAnwesenden: '34', anzahlderAngemeldeten: '12', kursleiter: 'Frau Test', notiz: ''},
-      ],
+      rows: [],
+      checkedBoxes: [],
       filter:'',
       currentSort:'angebotsnummer',
       currentSortDir:'asc',
       sortImg: 'sort_def.svg',
     }
   },
+
+  created() {
+    localStorage.setItem('checkedBoxID', 0);
+    this.loadData();
+  },
+
   methods: {
+
+    checkAllBoxes(){
+      var headercheckbox = document.getElementById('checkbox_headerline');
+      var headercheckboxvalue = headercheckbox.checked;
+
+      let checkboxes = document.getElementsByName('checkbox_tablerow');
+      for(var i=0, n=checkboxes.length;i<n;i++) {
+        if (headercheckboxvalue){
+          this.checkedBoxes.push(this.rows[i].id);
+        } else {
+          this.checkedBoxes.pop(this.rows[i].id);
+        }
+        checkboxes[i].checked = headercheckboxvalue;
+      }
+    },
+
+    loadData(){
+      this.$store.dispatch('course/getAll').then(
+        (data) => {
+          let x;
+          for(x = 0; x < data.length; x++){
+              this.rows.push({id: data[x].id, angebotsnummer: data[x].courseNumber, angebot: data[x].courseOffer, kursname: data[x].name, veranstaltungsart: data[x].eventType, kursdatum: data[x].courseDate, thema: data[x].topic, kursort: data[x].location, begleitendeLehrkraft: data[x].accompanyingTeacher, betreuendeStudenten: data[x].supervisingStudents, anzahlderAnwesenden: data[x].presentStudents, anzahlderAngemeldeten: data[x].registeredStudents, kursleiter: data[x].instructor, notiz: data[x].noteField});
+          }
+        },
+        error => {
+          this.message = (error.response && error.response.data) || error.message || error.toString();
+          this.successful = false;
+        }
+      );
+    },
+
     "sortTable": function sortTable(col) {
       this.currentSort = col;
       if (this.currentSortDir === 'asc') {
@@ -515,9 +547,20 @@ export default {
       }
     }
   },
+  watch: {
+    checkedBoxes(){
+      if (this.checkedBoxes.length > 1 || this.checkedBoxes.length < 1){
+        document.getElementById("editbutton").style.visibility = "hidden";
+        // EXPORT & DELETE
+      } else {
+        document.getElementById("editbutton").style.visibility = "visible";
+      }
+      localStorage.setItem('checkedBoxID', this.checkedBoxes[0]);
+    }
+  },
   computed: {
     "columns": function columns() {
-      if (this.rows.length == 0) {
+      if (this.rows.length === 0) {
         return [];
       }
       return Object.keys(this.rows[0])
diff --git a/src/components/CreateEditComponents/DeleteCourse.vue b/src/components/CreateEditComponents/DeleteCourse.vue
new file mode 100644
index 0000000000000000000000000000000000000000..81789f42278bacff85b3f18889c5ed1aeef2686f
--- /dev/null
+++ b/src/components/CreateEditComponents/DeleteCourse.vue
@@ -0,0 +1,13 @@
+<template>
+<div></div>
+</template>
+
+<script>
+export default {
+  name: "DeleteCourse"
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/components/CreateEditComponents/EditCourse.vue b/src/components/CreateEditComponents/EditCourse.vue
index 5cb769008ade49d38eda66406e273eb8c0d400f0..31fca714506995da26369e589033e07cbe79f9a7 100644
--- a/src/components/CreateEditComponents/EditCourse.vue
+++ b/src/components/CreateEditComponents/EditCourse.vue
@@ -109,7 +109,7 @@
           </div>
           <div class="form-row">
             <div class="col-md-11 mb-3">
-              <button class="btn btn-primary btn-lg btn-block" style="margin-top: 20px; border-radius: 10px" type="button" @click="validateBeforeSubmit">Eintrag hinzufügen</button>
+              <button class="btn btn-primary btn-lg btn-block" style="margin-top: 20px; border-radius: 10px" type="button" @click="validateBeforeSubmit">Eintrag bearbeiten</button>
             </div>
           </div>
           <div class="row">
@@ -130,17 +130,49 @@ export default {
 
   data(){
     return {
+      id: JSON.parse(localStorage.getItem('checkedBoxID')),
       message: "",
       course: new Course('', '', '', '', '', '', '', '', '', '', '', '', ''),
     }
   },
 
+  created() {
+    //this.loadData();
+    this.getData();
+  },
+
   methods: {
+
+    getData(){
+          this.$store.dispatch('course/getByID', this.id).then(
+              (data) => {
+                this.course.coursenumber = data.courseNumber;
+                this.course.courseoffer = data.courseOffer;
+                this.course.coursename = data.name;
+                this.course.eventtype = data.eventType;
+                this.course.coursedate = data.courseDate;
+                this.course.topic = data.topic;
+                this.course.courselocation = data.location;
+                this.course.accompanyingteacher = data.accompanyingTeacher;
+                this.course.supervisingstudents = data.supervisingStudents;
+                this.course.presentstudents = data.presentStudents;
+                this.course.registeredstudents = data.registeredStudents;
+                this.course.instructor = data.instructor;
+                this.course.notefield = data.noteField;
+
+              },
+              error => {
+                this.message = (error.response && error.response.data) || error.message || error.toString();
+                this.successful = false;
+              }
+          );
+    },
+
     validateBeforeSubmit() {
       this.$validator.validate().then(isValid => {
         if (isValid) {
           console.log("isvalid")
-          this.$store.dispatch('course/insert', this.course).then(
+          this.$store.dispatch('course/update', this.course).then(
               data => {
                 this.message = data.message;
                 this.successful = true;
@@ -155,6 +187,10 @@ export default {
           console.log("not isvalid")
         }
       });
+    },
+
+    loadData(){
+
     }
   }
 }
diff --git a/src/router.js b/src/router.js
index cb7100bb97475a809374c1167d72502c2625b30f..cf3a8dda252c9ca78e9f71257a823fa0c32f27a0 100644
--- a/src/router.js
+++ b/src/router.js
@@ -11,6 +11,7 @@ import Layouts  from "./components/Layouts";
 import Teachers from "./components/Teachers";
 import CreateCourse from "@/components/CreateEditComponents/CreateCourse";
 import EditCourse from "@/components/CreateEditComponents/EditCourse";
+import DeleteCourse from "@/components/CreateEditComponents/DeleteCourse";
 
 Vue.use(Router)
 
@@ -29,6 +30,11 @@ const router = new Router({
             name: 'Eintrag bearbeiten',
             component: EditCourse
         },
+        {
+            path: '/deletecourse',
+            name: 'Eintrag löschen',
+            component: DeleteCourse
+        },
 
         // LOGIN / REGISTER
         {
diff --git a/src/services/course.service.js b/src/services/course.service.js
index 22683eef9eac80a57a5cf1200e6baf7c3b2cec85..6119c2b5509d70f7d57239388c3bc9723f782920 100644
--- a/src/services/course.service.js
+++ b/src/services/course.service.js
@@ -28,6 +28,26 @@ class CourseService {
                 return response.data;
             });
     }
+
+    getAll() {
+        return axios
+            .get(API_URL + 'getCourses', {
+                headers: authHeader()
+            })
+            .then(response => {
+                return response.data;
+            });
+    }
+
+    getByID(idValue) {
+        return axios
+            .get(API_URL + 'getCoursesByID/'+idValue, {
+                headers: authHeader()
+            })
+            .then(response => {
+                return response.data;
+            });
+    }
 }
 
 
diff --git a/src/store/course.module.js b/src/store/course.module.js
index e16c693a46b6b662ac84aae362631bb2261bec45..6c54b3fa6c8a45288a7c6c4fe9619ca85423862a 100644
--- a/src/store/course.module.js
+++ b/src/store/course.module.js
@@ -19,6 +19,45 @@ export const course = {
                     return Promise.reject(error);
                 }
             );
+        },
+
+        update({ commit }, course) {
+            return CourseService.update(course).then(
+                response => {
+                    commit('updateSuccess', response);
+                    return Promise.resolve(response);
+                },
+                error => {
+                    commit('updateFailure');
+                    return Promise.reject(error);
+                }
+            );
+        },
+
+        getAll({ commit }) {
+            return CourseService.getAll().then(
+                response => {
+                    commit('insertSuccess', response);
+                    return Promise.resolve(response);
+                },
+                error => {
+                    commit('insertFailure');
+                    return Promise.reject(error);
+                }
+            );
+        },
+
+        getByID({ commit }, id) {
+            return CourseService.getByID(id).then(
+                response => {
+                    commit('insertSuccess', response);
+                    return Promise.resolve(response);
+                },
+                error => {
+                    commit('insertFailure');
+                    return Promise.reject(error);
+                }
+            );
         }
     },