diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5a457ea9b5a7c8bc13a46b1e33219f82f18a1293..19b1c23cf3699519e16058625d22789b55afeb6f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,7 +28,7 @@ before_script:
   - pip install -r requirements/development.txt
 # To get Django tests to work you may need to create a settings file using
 # the following DATABASES:
-# 
+#
 # DATABASES = {
 #     'default': {
 #        'ENGINE': 'django.db.backends.postgresql_psycopg2',
@@ -55,5 +55,8 @@ flake8:
 test:
   variables:
     DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/$POSTGRES_DB"
+    SECRET_KEY: "secret"
+    AUTHSCH_KEY: "secret"
+    AUTHSCH_SECRET: "secret"
   script:
   - python src/manage.py test
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..351a8fc4f8ce629c8efb58d0780121f3ee4a14d6
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,24 @@
+language: python
+python:
+  - "3.4"
+  - "3.5"
+  - "3.5-dev"  # 3.5 development branch
+  - "3.6"
+  - "3.6-dev"  # 3.6 development branch
+  - "3.7-dev"  # 3.7 development branch
+  - "nightly"
+services:
+  - postgresql
+# command to install dependencies
+install:
+  - pip install -r requirements/development.txt
+  
+before_script:
+  - psql -c 'create database travis_ci_test;' -U postgres
+env:
+  - DATABASE_URL="postgresql://postgres:postgres@postgres:5432/travis_ci_test"
+# command to run tests
+script:
+  - flake8 --max-line-length=125 --exclude=src/kszkepzes,migrations
+  - python src/manage.py migrate
+  - python src/manage.py test
diff --git a/README.md b/README.md
index f8cd16343a15f139b07ace346c28286271244997..38d506ef0bdc041ae74ccf9d5f01de0ca5fac7d7 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
 # KSZKĂŠpzĂŠs Honlap
 
-[![pipeline status](https://git.sch.bme.hu/kszk/devteam/kszkepzes/badges/master/pipeline.svg)](https://git.sch.bme.hu/kszk/devteam/kszkepzes/commits/master)
-[![coverage report](https://git.sch.bme.hu/kszk/devteam/kszkepzes/badges/master/coverage.svg)](https://git.sch.bme.hu/kszk/devteam/kszkepzes/commits/master)
+[![Build Status](https://travis-ci.org/DevTeamSCH/kszkepzes.svg?branch=master)](https://travis-ci.org/DevTeamSCH/kszkepzes)
 
 ## KĂśvetelmĂŠnyek
 
diff --git a/src/account/__init__.py b/src/account/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/account/admin.py b/src/account/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..b9e5817dfac078d71887a8d90fdda504257bb88a
--- /dev/null
+++ b/src/account/admin.py
@@ -0,0 +1,16 @@
+from django.contrib import admin
+from . import models
+
+
+@admin.register(models.Profile)
+class ProfileAdmin(admin.ModelAdmin):
+    list_display = ('user_username', 'join_date')
+
+    def user_username(self, obj):
+        return obj.user.username
+
+    user_username.admin_order_field = 'user__username'
+
+
+# Register your models here.
+admin.site.register(models.GroupChoice)
diff --git a/src/account/apps.py b/src/account/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7b1d19cf0169baf10b53f714ee88f35813b9ac9
--- /dev/null
+++ b/src/account/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class AccountConfig(AppConfig):
+    name = 'account'
diff --git a/src/account/migrations/0001_initial.py b/src/account/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c4b5267abb550ca5a08c3e50a2b3f0f72a54d57
--- /dev/null
+++ b/src/account/migrations/0001_initial.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-11-11 14:13
+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):
+
+    initial = True
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Profile',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('join_date', models.DateField()),
+                ('pref_group', models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('N', 'None')], default='None', max_length=10)),
+                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+    ]
diff --git a/src/account/migrations/0002_auto_20171114_2144.py b/src/account/migrations/0002_auto_20171114_2144.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc76cef337448de84b568817d4fe13dd023c0f13
--- /dev/null
+++ b/src/account/migrations/0002_auto_20171114_2144.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-11-14 20:44
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='profile',
+            name='pref_group',
+            field=models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'), ('N', 'None')], default='None', max_length=10),
+        ),
+    ]
diff --git a/src/account/migrations/0003_profile_nick.py b/src/account/migrations/0003_profile_nick.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a3542787808c4e28493012327718f79731e9f3c
--- /dev/null
+++ b/src/account/migrations/0003_profile_nick.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-12-23 11:06
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0002_auto_20171114_2144'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='profile',
+            name='nick',
+            field=models.CharField(blank=True, max_length=15, null=True),
+        ),
+    ]
diff --git a/src/account/migrations/0004_profile_signed.py b/src/account/migrations/0004_profile_signed.py
new file mode 100644
index 0000000000000000000000000000000000000000..424407361c1f04b2068daab365199eb7d5aa9e2b
--- /dev/null
+++ b/src/account/migrations/0004_profile_signed.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-12-23 11:10
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0003_profile_nick'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='profile',
+            name='signed',
+            field=models.BooleanField(default=False),
+        ),
+    ]
diff --git a/src/account/migrations/0005_auto_20171223_1455.py b/src/account/migrations/0005_auto_20171223_1455.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5e5fb83b2f2deeaf85dba89cb35de502a01ea4e
--- /dev/null
+++ b/src/account/migrations/0005_auto_20171223_1455.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-12-23 13:55
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0004_profile_signed'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='profile',
+            name='join_date',
+            field=models.DateField(auto_now=True),
+        ),
+    ]
diff --git a/src/account/migrations/0006_auto_20180123_1713.py b/src/account/migrations/0006_auto_20180123_1713.py
new file mode 100644
index 0000000000000000000000000000000000000000..035ce31da185ae28746fa3674f1670e1491e671f
--- /dev/null
+++ b/src/account/migrations/0006_auto_20180123_1713.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-23 16:13
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0005_auto_20171223_1455'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='GroupChoice',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('pref_group', models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'), ('N', 'None')], default='None', max_length=10)),
+            ],
+        ),
+        migrations.RemoveField(
+            model_name='profile',
+            name='pref_group',
+        ),
+        migrations.AddField(
+            model_name='groupchoice',
+            name='profile',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='preferd_groups', to='account.Profile'),
+        ),
+        migrations.AlterUniqueTogether(
+            name='groupchoice',
+            unique_together=set([('pref_group', 'profile')]),
+        ),
+    ]
diff --git a/src/account/migrations/0007_auto_20180123_1723.py b/src/account/migrations/0007_auto_20180123_1723.py
new file mode 100644
index 0000000000000000000000000000000000000000..27a4efe8c61f7cb19bb1f349a8c21b6e66f1e60e
--- /dev/null
+++ b/src/account/migrations/0007_auto_20180123_1723.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-23 16:23
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0006_auto_20180123_1713'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='groupchoice',
+            old_name='pref_group',
+            new_name='choice',
+        ),
+        migrations.AlterUniqueTogether(
+            name='groupchoice',
+            unique_together=set([('choice', 'profile')]),
+        ),
+    ]
diff --git a/src/account/migrations/0008_auto_20180124_1821.py b/src/account/migrations/0008_auto_20180124_1821.py
new file mode 100644
index 0000000000000000000000000000000000000000..fd3af443879f22344cc51f1334eec41e445948ad
--- /dev/null
+++ b/src/account/migrations/0008_auto_20180124_1821.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-24 17:21
+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 = [
+        ('account', '0007_auto_20180123_1723'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='profile',
+            name='user',
+            field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL),
+        ),
+    ]
diff --git a/src/account/migrations/0009_profile_motivation.py b/src/account/migrations/0009_profile_motivation.py
new file mode 100644
index 0000000000000000000000000000000000000000..c9d1e0a2e2aa16abd91adb4970ac860e5e991ffc
--- /dev/null
+++ b/src/account/migrations/0009_profile_motivation.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-24 17:43
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0008_auto_20180124_1821'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='profile',
+            name='motivation',
+            field=models.TextField(null=True),
+        ),
+    ]
diff --git a/src/account/migrations/0010_auto_20180124_1929.py b/src/account/migrations/0010_auto_20180124_1929.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a9b50d5d2e04d41c68b1aba0135774b1bd97bc3
--- /dev/null
+++ b/src/account/migrations/0010_auto_20180124_1929.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2018-01-24 18:29
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('account', '0009_profile_motivation'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='profile',
+            name='groups',
+            field=models.ManyToManyField(related_name='profiles', to='account.GroupChoice'),
+        ),
+        migrations.AlterField(
+            model_name='groupchoice',
+            name='choice',
+            field=models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'), ('N', 'None')], default='N', max_length=10, unique=True),
+        ),
+        migrations.AlterUniqueTogether(
+            name='groupchoice',
+            unique_together=set([]),
+        ),
+        migrations.RemoveField(
+            model_name='groupchoice',
+            name='profile',
+        ),
+    ]
diff --git a/src/account/migrations/__init__.py b/src/account/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/account/models.py b/src/account/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..9c9f6825eabda79f1ca0363ced2c56c691959299
--- /dev/null
+++ b/src/account/models.py
@@ -0,0 +1,30 @@
+from django.db import models
+from django.contrib.auth.models import User
+
+
+class GroupChoice(models.Model):
+    TEAMS = (
+        ('DT', 'DevTeam'),
+        ('NET', 'NeTeam'),
+        ('ST', 'SecurITeam'),
+        ('SYS', 'SysAdmin'),
+        ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'),
+        ('N', 'None'),
+    )
+    choice = models.CharField(max_length=10, choices=TEAMS, default='N', unique=True)
+
+    def __str__(self):
+        return self.choice
+
+
+class Profile(models.Model):
+    join_date = models.DateField(auto_now=True)
+    user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
+    motivation = models.TextField(null=True)
+    nick = models.CharField(max_length=15, blank=True, null=True)
+    signed = models.BooleanField(default=False, null=False)
+    groups = models.ManyToManyField(GroupChoice, related_name='profiles')
+    # Homeworks=models.ForeignKey(Homework)
+
+    def __str__(self):
+        return self.user.username
diff --git a/src/account/serializers.py b/src/account/serializers.py
new file mode 100644
index 0000000000000000000000000000000000000000..92a0828d55c5b8cd3a575ba0d16cb9f4711f87c8
--- /dev/null
+++ b/src/account/serializers.py
@@ -0,0 +1,16 @@
+from rest_framework import serializers
+from account import models
+
+
+class ChoiceSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = models.GroupChoice
+        fields = ('choice', 'profile')
+
+
+class ProfileSerializer(serializers.ModelSerializer):
+    groups = serializers.SlugRelatedField(many=True, slug_field="choice", queryset=models.GroupChoice.objects.all())
+
+    class Meta:
+        model = models.Profile
+        fields = ('id', 'join_date', 'user', 'nick', 'motivation', 'signed', 'groups')
diff --git a/src/account/tests.py b/src/account/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/account/urls.py b/src/account/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..ebf85f3d5bdf9885beb1ad7f28d1bce0e6624575
--- /dev/null
+++ b/src/account/urls.py
@@ -0,0 +1,7 @@
+from rest_framework import routers
+from . import views
+
+router = routers.DefaultRouter()
+
+router.register(r'profiles', views.ProfileViewSet, base_name='profile')
+urlpatterns = router.urls
diff --git a/src/account/views.py b/src/account/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..58c405059a1c21a80a62d1b1de6e658277a0f350
--- /dev/null
+++ b/src/account/views.py
@@ -0,0 +1,22 @@
+from rest_framework import viewsets
+from rest_framework import permissions
+from rest_framework.response import Response
+from rest_framework.decorators import list_route
+
+from . import models
+from . import serializers
+
+
+class ProfileViewSet(viewsets.ModelViewSet):
+    serializer_class = serializers.ProfileSerializer
+    permission_classes = (permissions.IsAuthenticated, )
+
+    def get_queryset(self):
+        user = self.request.user
+        if user.has_perm(permissions.IsAdminUser):
+            return models.Profile.objects.all()
+
+    @list_route(methods=['get'])
+    def me(self, request):
+        serializer = self.serializer_class(request.user.profile)
+        return Response(serializer.data)
diff --git a/src/kszkepzes/settings.py b/src/kszkepzes/settings.py
index 3128c9d12e655bf39779c869a6b7dbd8f10f8a8d..5c53612e437be6058af830883882a6f066779668 100644
--- a/src/kszkepzes/settings.py
+++ b/src/kszkepzes/settings.py
@@ -42,6 +42,8 @@ INSTALLED_APPS = [
     'social_django',
     'authsch',
     'homework',
+    'account',
+    'stats',
 ]
 
 MIDDLEWARE = [
@@ -122,7 +124,7 @@ LOGIN_URL = "login/authsch/"
 
 LANGUAGE_CODE = 'en-us'
 
-TIME_ZONE = 'UTC'
+TIME_ZONE = 'Europe/Budapest'
 
 USE_I18N = True
 
diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py
index 16da3fbcb257357a307f9ec7a4b8ef3b52688453..cb9bbcdc434a5db23b90606ebf69b6744b115a65 100644
--- a/src/kszkepzes/urls.py
+++ b/src/kszkepzes/urls.py
@@ -20,4 +20,6 @@ urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url('', include('social_django.urls', namespace='social')),
     url(r'^api/v1/homework/', include('homework.urls')),
+    url(r'^api/v1/', include('stats.urls')),
+    url(r'^api/v1/', include('account.urls')),
 ]
diff --git a/src/stats/__init__.py b/src/stats/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/stats/admin.py b/src/stats/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..a551546486611e9b0125f25096c0125c1c1e962f
--- /dev/null
+++ b/src/stats/admin.py
@@ -0,0 +1,5 @@
+from django.contrib import admin
+from .models import KszkEvent
+
+
+admin.site.register(KszkEvent)
diff --git a/src/stats/apps.py b/src/stats/apps.py
new file mode 100644
index 0000000000000000000000000000000000000000..2d09b92ca1ba59e93693ada2c0c0dd7340a9df15
--- /dev/null
+++ b/src/stats/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class StatsConfig(AppConfig):
+    name = 'stats'
diff --git a/src/stats/migrations/0001_initial.py b/src/stats/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..91e32fff21f7f6489284d3c0ab02d8b58949f049
--- /dev/null
+++ b/src/stats/migrations/0001_initial.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-11-11 14:14
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('account', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='KszkEvent',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('date', models.DateField()),
+                ('num_of_pers', models.IntegerField()),
+                ('visitors', models.ManyToManyField(related_name='visitor', to='account.Profile')),
+            ],
+        ),
+    ]
diff --git a/src/stats/migrations/0002_auto_20171111_1646.py b/src/stats/migrations/0002_auto_20171111_1646.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a51b6e003a0e51bf2130254034f7a8bfda83b8b
--- /dev/null
+++ b/src/stats/migrations/0002_auto_20171111_1646.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-11-11 15:46
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stats', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='kszkevent',
+            name='num_of_pers',
+            field=models.IntegerField(editable=False),
+        ),
+    ]
diff --git a/src/stats/migrations/0003_auto_20171114_2026.py b/src/stats/migrations/0003_auto_20171114_2026.py
new file mode 100644
index 0000000000000000000000000000000000000000..4f61427074f3da7f8f404795ce58528a1be00bb6
--- /dev/null
+++ b/src/stats/migrations/0003_auto_20171114_2026.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-11-14 19:26
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stats', '0002_auto_20171111_1646'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='kszkevent',
+            name='date',
+            field=models.DateTimeField(),
+        ),
+    ]
diff --git a/src/stats/migrations/0004_remove_kszkevent_num_of_pers.py b/src/stats/migrations/0004_remove_kszkevent_num_of_pers.py
new file mode 100644
index 0000000000000000000000000000000000000000..06bf71b435fa15cddf94d3352678cba5aa44784a
--- /dev/null
+++ b/src/stats/migrations/0004_remove_kszkevent_num_of_pers.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-11-14 19:38
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('stats', '0003_auto_20171114_2026'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='kszkevent',
+            name='num_of_pers',
+        ),
+    ]
diff --git a/src/stats/migrations/__init__.py b/src/stats/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/stats/models.py b/src/stats/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..b3cea98f8d0779a9f8b033e69beb89750e7b3d79
--- /dev/null
+++ b/src/stats/models.py
@@ -0,0 +1,13 @@
+from django.db import models
+from account.models import Profile
+from django.utils import timezone
+from django.core.exceptions import ValidationError
+
+
+class KszkEvent(models.Model):
+    date = models.DateTimeField(null=False)
+    visitors = models.ManyToManyField(Profile, related_name='visitor')
+
+    def clean(self):
+        if self.date > timezone.now():
+            raise ValidationError('Invalid date')
diff --git a/src/stats/serializers.py b/src/stats/serializers.py
new file mode 100644
index 0000000000000000000000000000000000000000..83569981c7ddc3d22fa64e94970bd98dddb71b85
--- /dev/null
+++ b/src/stats/serializers.py
@@ -0,0 +1,8 @@
+from rest_framework import serializers
+from . import models
+
+
+class KszkEventSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = models.KszkEvent
+        fields = ('date',  'visitors')
diff --git a/src/stats/tests.py b/src/stats/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/stats/urls.py b/src/stats/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..7c03811c1c72b2efe61eb9009f450a2047212956
--- /dev/null
+++ b/src/stats/urls.py
@@ -0,0 +1,9 @@
+from rest_framework import routers
+
+from . import views
+
+router = routers.DefaultRouter()
+router.register(r'events', views.KszkEventViewSet)
+
+# app_name = 'stats'
+urlpatterns = router.urls
diff --git a/src/stats/views.py b/src/stats/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..c7ed3ecdf5621171f68cd8dcacc07621296b77c1
--- /dev/null
+++ b/src/stats/views.py
@@ -0,0 +1,9 @@
+from rest_framework import viewsets
+
+from . import models
+from . import serializers
+
+
+class KszkEventViewSet(viewsets.ModelViewSet):
+    serializer_class = serializers.KszkEventSerializer
+    queryset = models.KszkEvent.objects.all()