diff --git a/backend/core/serializers.py b/backend/core/serializers.py
index 8178ecfae6f841340d82c7e9afada2bee9dd3c52..59e7587d8023e14c9cdaea1bf57edacc25e71398 100644
--- a/backend/core/serializers.py
+++ b/backend/core/serializers.py
@@ -1,5 +1,4 @@
 from rest_framework import serializers
-
 from core.models import ExamType, Feedback, Student, Submission
 
 
diff --git a/backend/core/tests/data_factories.py b/backend/core/tests/data_factories.py
new file mode 100644
index 0000000000000000000000000000000000000000..259d6d764c6cde01d3cab92fe266d17de38edce8
--- /dev/null
+++ b/backend/core/tests/data_factories.py
@@ -0,0 +1,63 @@
+from core.models import (UserAccount, Student, Tutor, Reviewer,
+                         ExamType, SubmissionType, Submission, Feedback)
+
+
+# These methods are meant to be used to provide data to insert into the test database
+
+def make_user(username='user01', password='p', fullname='us er01', is_admin=False):
+    user = UserAccount.objects.create(username=username, fullname=fullname,
+                                      is_admin=is_admin)
+    user.set_password(password)
+    user.save()
+    return user
+
+
+def make_exam(module_reference='TestExam B.Inf.0042', total_score=42, pass_score=21, **kwargs):
+    return ExamType.objects.create(module_reference=module_reference, total_score=total_score,
+                                   pass_score=pass_score, **kwargs)
+
+
+def make_submission_type(name='problem01', full_score=10, description='Very hard',
+                         solution='Impossible!'):
+    return SubmissionType.objects.create(name=name, full_score=full_score,
+                                         description=description, solution=solution)
+
+
+def make_student(user=None, exam=None):
+    if user is None:
+        user = make_user()
+    if exam is None:
+        exam = make_exam()
+    return Student.objects.create(user=user, exam=exam)
+
+
+def make_tutor(user=None):
+    if user is None:
+        user = make_user()
+    return Tutor.objects.create(user=user)
+
+
+def make_reviewer(user=None):
+    if user is None:
+        user = make_user()
+    return Reviewer.objects.create(user=user)
+
+
+def make_submission(type=None, student=None, text='Too hard for me ;-('):
+    if type is None:
+        type = make_submission_type()
+    if student is None:
+        student = make_student()
+    return Submission.objects.create(text=text, type=type, student=student)
+
+
+def make_feedback(of_tutor, of_submission=None, text='Very bad!', score=3):
+    if of_submission is None:
+        of_submission = make_submission()
+    return Feedback.objects.create(of_tutor=of_tutor, of_submission=of_submission, text=text, score=score)
+
+
+def make_minimal_exam():
+    submission = make_submission()     # also creates default examType, submissionType and student
+    tutor = make_tutor(user=make_user(username='tutor01'))
+    make_feedback(of_tutor=tutor, of_submission=submission)
diff --git a/backend/core/views.py b/backend/core/views.py
index 2932ec09bb16aebe08c22bfdfa567ca288d737fd..20f185b4f5ba84513c37fdf1d9fc0e91d6cdd66e 100644
--- a/backend/core/views.py
+++ b/backend/core/views.py
@@ -9,7 +9,6 @@ from core.serializers import (FeedbackSerializer, StudentSerializer,
 log = logging.getLogger(__name__)
 
 
-
 class StudentApiView(RetrieveAPIView):
     permission_classes = (IsStudent,)