diff --git a/src/homework/migrations/0004_auto_20180204_1209.py b/src/homework/migrations/0004_auto_20180204_1209.py
new file mode 100644
index 0000000000000000000000000000000000000000..4a5edae2bf510af877be158eaf1179a88561f9ec
--- /dev/null
+++ b/src/homework/migrations/0004_auto_20180204_1209.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-02-04 11:09
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('homework', '0003_auto_20180124_1818'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='solution',
+            name='created_by',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+    ]
diff --git a/src/homework/migrations/0005_auto_20180204_1525.py b/src/homework/migrations/0005_auto_20180204_1525.py
new file mode 100644
index 0000000000000000000000000000000000000000..33d8e8b819be271f58c67f9fa6ef5fc023e30be0
--- /dev/null
+++ b/src/homework/migrations/0005_auto_20180204_1525.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-02-04 14:25
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('homework', '0004_auto_20180204_1209'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='solution',
+            old_name='date',
+            new_name='alma',
+        ),
+    ]
diff --git a/src/homework/migrations/0006_auto_20180204_1601.py b/src/homework/migrations/0006_auto_20180204_1601.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6bdbc058c2d151c208b0b03cddadb7cd7855e51
--- /dev/null
+++ b/src/homework/migrations/0006_auto_20180204_1601.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-02-04 15:01
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('homework', '0005_auto_20180204_1525'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='solution',
+            old_name='alma',
+            new_name='date',
+        ),
+    ]
diff --git a/src/homework/permissions.py b/src/homework/permissions.py
index 8c1bc6a6dcca2ecdcfc18a7c12d47a80d3304861..659c3a60c87ea61abb684a8c0e6f91b568685431 100644
--- a/src/homework/permissions.py
+++ b/src/homework/permissions.py
@@ -27,3 +27,14 @@ class IsStaffOrReadOnlyForAuthenticated(BasePermission):
     """
     def has_permission(self, request, view):
         return request.user.is_staff or request.method in SAFE_METHODS and request.user.is_authenticated
+
+
+class IsStaffUser(BasePermission):
+
+    """
+    The request is authenticated as a staff
+    """
+
+    def has_permission(self, request, view):
+        return request.user.is_staff
+  
\ No newline at end of file
diff --git a/src/homework/serializers.py b/src/homework/serializers.py
index d27ebf8cbaaded2b210af704aa9ec7a27b4f0444..4ce68b43063f2a4b52158fbc2e78a074333653b8 100644
--- a/src/homework/serializers.py
+++ b/src/homework/serializers.py
@@ -15,4 +15,13 @@ class SolutionSerializer(serializers.ModelSerializer):
         model = models.Solution
         read_only_fields = ('created_by', 'date' 'ready')
         extra_kwargs = {'created_by': {'default': serializers.CurrentUserDefault()}}
-        fields = '__all__'
+        fields = ('task', 'date', 'accepted', 'files', 'created_by')
+
+    def validate(self, attrs):
+        task = attrs['task']
+        date = attrs['date']
+
+        if task.deadline < date:
+            raise serializers.ValidationError("You cannot submit homework after the deadline")
+
+        return attrs
diff --git a/src/homework/urls.py b/src/homework/urls.py
index b049f63b55b713070f71fd581696af0c728649ee..a77de30b08c47de0fb4942e0a71ea68002612ada 100644
--- a/src/homework/urls.py
+++ b/src/homework/urls.py
@@ -2,7 +2,7 @@ from rest_framework import routers
 from . import views
 
 router = routers.DefaultRouter()
-router.register(r'tasks', views.TasksViewSet)
-router.register(r'solutions', views.SolutionViewSet)
+router.register(r'tasks', views.TasksViewSet, base_name='tasks')
+router.register(r'solutions', views.SolutionsViewSet, base_name='solutions')
 
 urlpatterns = router.urls
diff --git a/src/homework/views.py b/src/homework/views.py
index 005d45349a77e4b97de29a4b90ed736430a9f4c2..e4da4efbfa3c5314db257b1695fd4a769403311d 100644
--- a/src/homework/views.py
+++ b/src/homework/views.py
@@ -1,11 +1,13 @@
 from rest_framework import viewsets
-
+from rest_framework.response import Response
+from rest_framework import status
+from rest_framework.decorators import list_route
+from django.http import Http404
+from django.shortcuts import get_object_or_404
 
 from . import serializers
 from . import models
 from . import permissions
-from rest_framework.response import Response
-from rest_framework import status
 
 
 class TasksViewSet(viewsets.ModelViewSet):
@@ -14,7 +16,7 @@ class TasksViewSet(viewsets.ModelViewSet):
     permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, )
 
 
-class SolutionViewSet(viewsets.ModelViewSet):
+class SolutionsViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.SolutionSerializer
     queryset = models.Solution.objects.all()
     permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, )
@@ -22,7 +24,21 @@ class SolutionViewSet(viewsets.ModelViewSet):
     def create(self, request, *args, **kwargs):
         serializer = self.get_serializer(data=request.data)
         serializer.is_valid(raise_exception=True)
-        serializer.validated_data['accepted'] = False
-        self.perform_create(serializer)
+        # serializer.validated_data['accepted'] = False
+        # task_id = serializer.validated_data.get('task')
+        # date = serializer.validated_data['date']
+        # task = get_object_or_404(models.Task, pk=task_id)
+        # if task_id.deadline < date:
+        #     return Http404("Deadline")
         headers = self.get_success_headers(serializer.data)
         return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
+
+    def get_queryset(self):
+        user = self.request.user
+        if user.has_perm(permissions.IsStaffUser):
+            return models.Solution.objects.all()
+
+    @list_route(methods=['get'])
+    def me(self, request):
+        serializer = self.serializer_class(request.user.profile) #request ?
+        return Response(serializer.data)
\ No newline at end of file