diff --git a/core/tests/test_export.py b/core/tests/test_export.py
index b0ae6ff7a9ccd8248e5bd859e0d9296ca6b4ad89..c7422190177899e61721fe5b424ca0432f171d18 100644
--- a/core/tests/test_export.py
+++ b/core/tests/test_export.py
@@ -9,6 +9,11 @@ class ExportCSVTest(TestCase):
     @classmethod
     def setUpTestData(cls):
         cls.data = make_test_data(data_dict={
+            'exams': [{
+                'module_reference': 'Test Exam 01',
+                'total_score': 100,
+                'pass_score': 60,
+            }],
             'submission_types': [
                 {
                     'name': '01. Sort',
@@ -24,8 +29,8 @@ class ExportCSVTest(TestCase):
                 }
             ],
             'students': [
-                {'username': 'student01'},
-                {'username': 'student02'}
+                {'username': 'student01', 'exam': 'Test Exam 01'},
+                {'username': 'student02', 'exam': 'Test Exam 01'}
             ],
             'reviewers': [
                 {'username': 'reviewer'}
@@ -81,6 +86,6 @@ class ExportCSVTest(TestCase):
 
     def test_data_is_correct(self):
         head, student1, student2, _ = self.response.content.split(b'\r\n')
-        self.assertIn(b'Matrikel;Name;Sum;01. Sort;02. Shuffle', head)
-        self.assertIn(b';;5;5;0', student1)
-        self.assertIn(b';;0;0;0', student2)
+        self.assertIn(b'Matrikel;Name;Exam;Sum;01. Sort;02. Shuffle', head)
+        self.assertIn(b';;Test Exam 01;5;5;0', student1)
+        self.assertIn(b';;Test Exam 01;0;0;0', student2)
diff --git a/core/views/export.py b/core/views/export.py
index 7628c7fe0e19d27675aec47216e7e166170d1835..f31e3d4b0674e8f251575a5ba38d0b01051ca386 100644
--- a/core/views/export.py
+++ b/core/views/export.py
@@ -18,7 +18,7 @@ class StudentCSVExport(APIView):
 
     def get_renderer_context(self):
         context = super().get_renderer_context()
-        context['header'] = ('Matrikel', 'Name', 'Sum',
+        context['header'] = ('Matrikel', 'Name', 'Exam', 'Sum',
                              *SubmissionType.objects.values_list('name',
                                                                  flat=True))
         context['delimiter'] = ';'
@@ -33,6 +33,7 @@ class StudentCSVExport(APIView):
         content = [{'Matrikel': student.matrikel_no,
                     'Name': student.user.fullname,
                     'Sum': student.overall_score,
+                    'Exam': student.exam.module_reference,
                     **student.score_per_submission()
                     } for student
                    in StudentInfo.get_annotated_score_submission_list()]
diff --git a/frontend/src/store/getters.ts b/frontend/src/store/getters.ts
index 3cdc0cbe2850114a1e33d632a759cd4a2da74a4c..8c8da5ac02655f4e358093e094b24343cb33066b 100644
--- a/frontend/src/store/getters.ts
+++ b/frontend/src/store/getters.ts
@@ -12,6 +12,9 @@ const getters = {
   },
   getSubmissionType: state => pk => {
     return state.submissionTypes[pk]
+  },
+  findStudentByUser: state => user => {
+    return Object.values(state.students).find((student: any) => student.user === user)
   }
 }
 
diff --git a/grady/settings/live.py b/grady/settings/live.py
index 05d7bc2825803701af3b6ed0c779d1f12c89ed3c..6b5c140135725b48a55f4e8b01809ba34a81ce94 100644
--- a/grady/settings/live.py
+++ b/grady/settings/live.py
@@ -19,7 +19,9 @@ DEBUG = False
 SECRET_FILE = 'secret'
 try:
     SECRET_KEY = open(SECRET_FILE).read().strip()
-except IOError:
+    if len(SECRET_KEY) == 0:
+        raise Exception
+except (IOError, Exception):
     try:
         SECRET_KEY = ''.join(secrets.choice(string.printable)
                              for i in range(50))