diff --git a/src/homework/migrations/0004_auto_20180125_1817.py b/src/homework/migrations/0004_auto_20180125_1817.py
new file mode 100644
index 0000000000000000000000000000000000000000..9693462cf1df61aa81b3afd1810968e5b8ee444b
--- /dev/null
+++ b/src/homework/migrations/0004_auto_20180125_1817.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-25 17:17
+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/models.py b/src/homework/models.py
index 0e94c27c497efe4e6dd8eed001356a8b5b0a27b5..87772df30ab9d524475153825894519cac862e17 100644
--- a/src/homework/models.py
+++ b/src/homework/models.py
@@ -51,7 +51,7 @@ class Solution(models.Model):
     task = models.ForeignKey(Task, related_name='task_solution', on_delete=models.CASCADE, )
     # student = models.ForeignKey(account.models.Profile, related_name='student_solution',  on_delete=models.CASCADE)
     date = models.DateTimeField(auto_now_add=True, editable=False, )
-    ready = models.BooleanField(default=False, ) #if(Soulution.date <= Task.deadline)
+    ready = models.BooleanField(default=False, )  # if(Soulution.date <= Task.deadline)
     accepted = models.BooleanField(default=False, )
     files = models.FileField(
         validators=[validators.FileExtensionValidator(
diff --git a/src/homework/permissions.py b/src/homework/permissions.py
index 7fab2c9d41a927e34b924fd725a531b90ebbc08d..ef5e09c427b4f93fac2592d1043a828f32d05c3d 100644
--- a/src/homework/permissions.py
+++ b/src/homework/permissions.py
@@ -29,6 +29,7 @@ class IsAuthenticatedOrReadOnly(BasePermission):
 
 
 class IsStaffOrReadOnlyForAuthenticated(BasePermission):
+
     """
     The request is authenticated as a staff, or is a read-only request for authenticated.
     """
diff --git a/src/kszkepzes/settings.py b/src/kszkepzes/settings.py
index 5c53612e437be6058af830883882a6f066779668..db85da936cb6bb127570816efbae7d436ec7eaa1 100644
--- a/src/kszkepzes/settings.py
+++ b/src/kszkepzes/settings.py
@@ -44,6 +44,7 @@ INSTALLED_APPS = [
     'homework',
     'account',
     'stats',
+    'news',
 ]
 
 MIDDLEWARE = [
diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py
index 96d979b966fa049cffc9662118bf1da143e16240..bb449b0a8cc3acc7ca1770f71328b680b9afd186 100644
--- a/src/kszkepzes/urls.py
+++ b/src/kszkepzes/urls.py
@@ -7,4 +7,5 @@ urlpatterns = [
     url(r'^api/v1/homework/', include('homework.urls')),
     url(r'^api/v1/', include('stats.urls')),
     url(r'^api/v1/', include('account.urls')),
+    url(r'^api/v1/', include('news.urls')),
 ]
diff --git a/src/news/__init__.py b/src/news/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/news/admin.py b/src/news/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f39d2fe12544dbc56abffe0abb6766e05fd843d
--- /dev/null
+++ b/src/news/admin.py
@@ -0,0 +1,5 @@
+from django.contrib import admin
+from .models import Article
+
+admin.site.register(Article)
+# Register your models here.
diff --git a/src/news/apps.py b/src/news/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a7b92d0f844e1bd89c73e7bba369b07298ae70a
--- /dev/null
+++ b/src/news/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class NewsConfig(AppConfig):
+    name = 'news'
diff --git a/src/news/migrations/0001_initial.py b/src/news/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..3e3bf0cd6b30767f0b17a436e2c1eede7b9061a7
--- /dev/null
+++ b/src/news/migrations/0001_initial.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-11-28 19:55
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('account', '0002_auto_20171114_2144'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Article',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('title', models.CharField(max_length=200)),
+                ('text', models.TextField()),
+                ('date', models.DateTimeField()),
+                ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='author', to='account.Profile')),
+            ],
+        ),
+    ]
diff --git a/src/news/migrations/0002_auto_20171220_1852.py b/src/news/migrations/0002_auto_20171220_1852.py
new file mode 100644
index 0000000000000000000000000000000000000000..82274a5e164ffb466661b8358d3839ee44f9f78a
--- /dev/null
+++ b/src/news/migrations/0002_auto_20171220_1852.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-12-20 17:52
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('news', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='article',
+            name='date',
+            field=models.DateTimeField(auto_now_add=True),
+        ),
+    ]
diff --git a/src/news/migrations/__init__.py b/src/news/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/news/models.py b/src/news/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..b30275b532f0d66b29072bbeae2f376938f6a0ec
--- /dev/null
+++ b/src/news/models.py
@@ -0,0 +1,12 @@
+from django.db import models
+from account.models import Profile
+
+
+class Article(models.Model):
+    author = models.ForeignKey(Profile, related_name="author")
+    title = models.CharField(null=False, max_length=200)
+    text = models.TextField()
+    date = models.DateTimeField(auto_now_add=True)
+
+    def __str__(self):
+        return self.title
diff --git a/src/news/permissions.py b/src/news/permissions.py
new file mode 100644
index 0000000000000000000000000000000000000000..af200e51fd2bded246fdff376bc667109a87f632
--- /dev/null
+++ b/src/news/permissions.py
@@ -0,0 +1,11 @@
+from rest_framework.permissions import BasePermission
+from rest_framework.permissions import SAFE_METHODS
+
+
+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
+                )
diff --git a/src/news/serializers.py b/src/news/serializers.py
new file mode 100644
index 0000000000000000000000000000000000000000..ced9a8a2bce991d678e1cac1a7d3b8a83c0c4b20
--- /dev/null
+++ b/src/news/serializers.py
@@ -0,0 +1,8 @@
+from news.models import Article
+from rest_framework import serializers
+
+
+class ArticleListSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = Article
+        fields = '__all__'
diff --git a/src/news/tests.py b/src/news/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/news/urls.py b/src/news/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..b08ebdd72a8c2303635cac63862bb8d0320e419e
--- /dev/null
+++ b/src/news/urls.py
@@ -0,0 +1,9 @@
+from rest_framework import routers
+from news import views
+
+
+router = routers.DefaultRouter(trailing_slash=False)
+
+router.register(r'news', views.NewsViewSet)
+
+urlpatterns = router.urls
diff --git a/src/news/views.py b/src/news/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ddf4881487ae34e32428022d7887665c88cf685
--- /dev/null
+++ b/src/news/views.py
@@ -0,0 +1,10 @@
+from news.permissions import IsStaffOrReadOnlyForAuthenticated
+from rest_framework import viewsets
+from news.models import Article
+from news.serializers import ArticleListSerializer
+
+
+class NewsViewSet(viewsets.ModelViewSet):
+    serializer_class = ArticleListSerializer
+    permission_classes = [IsStaffOrReadOnlyForAuthenticated]
+    queryset = Article.objects.all()