diff --git a/src/document/models.py b/src/document/models.py
index 093434c91e2e82f277136f77bfee408269286501..f4103dc2c2a9c43cc467fa48c118ec73a5ee3ba9 100644
--- a/src/document/models.py
+++ b/src/document/models.py
@@ -10,7 +10,7 @@ from common.validators import FileSizeValidator
 
 def document_file_name(instance, filename):
     return '/'.join([
-        'document',
+        'public/document',
         instance.solution.task.title,
         instance.uploaded_by.full_name,
         filename
diff --git a/src/document/views.py b/src/document/views.py
index 3744e3b7b5507edf625e88cc087ab2b2c8709c61..e2e5d3013688e06fc7666a83a23e49e7cac5e090 100644
--- a/src/document/views.py
+++ b/src/document/views.py
@@ -7,6 +7,7 @@ from django.http import HttpResponse, Http404
 from rest_framework.decorators import action
 import os
 
+
 class DocumentViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.DocumentSerializer
     permission_classes = (permissions.IsStaffOrStudent, )
@@ -25,7 +26,10 @@ class DocumentViewSet(viewsets.ModelViewSet):
         profile_id = self.request.query_params.get('profileID', None)
         solution_id = self.request.query_params.get('solutionID', None)
         if profile_id is not None and solution_id is not None:
-            return queryset.filter(uploaded_by=profile_id, solution=solution_id)
+            return queryset.filter(
+                uploaded_by=profile_id,
+                solution=solution_id
+            )
         if profile_id is not None:
             return queryset.filter(uploaded_by=profile_id)
         if solution_id is not None:
@@ -38,19 +42,23 @@ class DocumentViewSet(viewsets.ModelViewSet):
         if solution_id is not None:
             return queryset.filter(solution=solution_id)
         return queryset
-    
+
     def perform_create(self, serializer):
         kwargs = {
             'uploaded_by': self.request.user.profile
         }
- 
+
         serializer.save(**kwargs)
 
     @action(detail=True, methods=["get"])
     def download(self, request, pk):
         document = self.get_object()
         with document.file.open() as fh:
-            response = HttpResponse(fh.read(), content_type="application/media")
-            response['Content-Disposition'] = 'inline; filename=' + os.path.basename(document.file.name)
+            response = HttpResponse(
+                fh.read(),
+                content_type="application/media"
+            )
+            response['Content-Disposition'] = \
+                'inline; filename=' + os.path.basename(document.file.name)
             return response
         raise Http404
diff --git a/src/images/__init__.py b/src/images/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/images/admin.py b/src/images/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..e5459539b0c5b10562f9d6786e45011882017406
--- /dev/null
+++ b/src/images/admin.py
@@ -0,0 +1,5 @@
+from django.contrib import admin
+from .models import Images
+
+admin.site.register(Images)
+# Register your models here.
diff --git a/src/images/apps.py b/src/images/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..a873d1a4e0f3523f2d9e297c7c895e710098e878
--- /dev/null
+++ b/src/images/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class ImagesConfig(AppConfig):
+    name = 'images'
diff --git a/src/images/migrations/0001_initial.py b/src/images/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..2319c1469c25d31d08611fb04d3e4a1c94aba949
--- /dev/null
+++ b/src/images/migrations/0001_initial.py
@@ -0,0 +1,21 @@
+# Generated by Django 2.2.4 on 2020-02-07 22:44
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Images',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('image', models.ImageField(blank=True, null=True, upload_to='images/')),
+            ],
+        ),
+    ]
diff --git a/src/images/migrations/0002_auto_20200208_0254.py b/src/images/migrations/0002_auto_20200208_0254.py
new file mode 100644
index 0000000000000000000000000000000000000000..045c2a144dfaf0952963f7841f53d9e740bc40e5
--- /dev/null
+++ b/src/images/migrations/0002_auto_20200208_0254.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.2.4 on 2020-02-08 01:54
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('images', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='images',
+            name='image',
+            field=models.ImageField(blank=True, null=True, upload_to='public/images/'),
+        ),
+    ]
diff --git a/src/images/migrations/__init__.py b/src/images/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/images/models.py b/src/images/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..d515aeffce8e271338cd5bd37f2218736218b668
--- /dev/null
+++ b/src/images/models.py
@@ -0,0 +1,10 @@
+from django.db import models
+
+
+class Images(models.Model):
+    image = models.ImageField(
+        upload_to='public/images/', null=True, blank=True
+        )
+
+    def __str__(self):
+        return self.id
diff --git a/src/images/serializers.py b/src/images/serializers.py
new file mode 100644
index 0000000000000000000000000000000000000000..e8985bd69031fa72efd4a017b1fb7f8deaf05932
--- /dev/null
+++ b/src/images/serializers.py
@@ -0,0 +1,9 @@
+from images.models import Images
+from rest_framework import serializers
+
+
+class ImagesSerializer(serializers.ModelSerializer):
+
+    class Meta:
+        model = Images
+        fields = ('id', 'image')
diff --git a/src/images/tests.py b/src/images/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/images/urls.py b/src/images/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..b16c854441022549d60f67c06b69d15ac63cf1bd
--- /dev/null
+++ b/src/images/urls.py
@@ -0,0 +1,8 @@
+from rest_framework import routers
+from images import views
+
+
+router = routers.DefaultRouter()
+router.register(r'images', views.ImagesViewSet, base_name='images')
+
+urlpatterns = router.urls
diff --git a/src/images/views.py b/src/images/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..162a8da6d35e5a9b0d77b37fd055ef8befc8570c
--- /dev/null
+++ b/src/images/views.py
@@ -0,0 +1,14 @@
+from common.permissions import IsStaffOrStudent, \
+    IsStaffOrReadOnlyForAuthenticated
+from rest_framework import viewsets
+from images.models import Images
+from images.serializers import ImagesSerializer
+
+
+class ImagesViewSet(viewsets.ModelViewSet):
+    serializer_class = ImagesSerializer
+    permission_classes = (
+        IsStaffOrReadOnlyForAuthenticated,
+        IsStaffOrStudent,
+    )
+    queryset = Images.objects.all()
diff --git a/src/kszkepzes/settings/base.py b/src/kszkepzes/settings/base.py
index 1e9a30157766d5704f4892538ec9128fd7672078..b040f8cf02b11324711e2a19c152aac3bf7be47e 100644
--- a/src/kszkepzes/settings/base.py
+++ b/src/kszkepzes/settings/base.py
@@ -49,6 +49,7 @@ INSTALLED_APPS = [
     'news',
     'document',
     'mentors',
+    'images',
     'groups',
     'drf_yasg',
 ]
@@ -160,4 +161,4 @@ STATIC_URL = '/staticfiles/'
 STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
 
 MEDIA_URL = "/mediafiles/"
-MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
+MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
\ No newline at end of file
diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py
index 0760d77eda95fb1a1ac2a54f9de0669a0ae0dfb4..c07e90ed5b4b50ce44b43077039adb5e8f38e0fd 100644
--- a/src/kszkepzes/urls.py
+++ b/src/kszkepzes/urls.py
@@ -37,6 +37,7 @@ urlpatterns = [
     url(r'^api/v1/', include('document.urls')),
     url(r'^api/v1/', include('groups.urls')),
     url(r'^api/v1/', include('mentors.urls')),
+    url(r'^api/v1/', include('images.urls')),
     url(r'^api/v1/logout/$', auth_views.LogoutView.as_view(), name='logout'),
 ]
 
diff --git a/src/mentors/views.py b/src/mentors/views.py
index 28fdcc0bca19e2e4904b560ac9efa0e603689679..825eccbfa2b4515ddd8f6f7eb8a072fad193cbe5 100644
--- a/src/mentors/views.py
+++ b/src/mentors/views.py
@@ -1,4 +1,5 @@
-from common.permissions import IsStaffOrStudent
+from common.permissions import IsStaffOrStudent, \
+    IsStaffOrReadOnlyForAuthenticated
 from rest_framework import viewsets
 from mentors.models import Mentor
 from mentors.serializers import MentorSerializer
@@ -6,7 +7,10 @@ from mentors.serializers import MentorSerializer
 
 class MentorsViewSet(viewsets.ModelViewSet):
     serializer_class = MentorSerializer
-    permission_classes = (IsStaffOrStudent,)
+    permission_classes = (
+        IsStaffOrReadOnlyForAuthenticated,
+        IsStaffOrStudent,
+    )
     queryset = Mentor.objects.all().order_by('name')
 
     def perform_create(self, serializer):