diff --git a/.gitignore b/.gitignore
index d4282223c22241df28366753b11bca4059fb7ee5..a84d8fd4c8ce065aae6794be7d8f952759a03bee 100755
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,5 @@ class.pdf
 class.tex
 .idea/
 media/
-node_modules
\ No newline at end of file
+node_modules
+staticcollect
\ No newline at end of file
diff --git a/README.md b/README.md
index 9b8ad555b20dbe6c2d8e055f08cc1840cebffd74..8ee76aec74553568dbbb44bfeedc3983d3a7bebb 100755
--- a/README.md
+++ b/README.md
@@ -50,6 +50,7 @@ pip install django-filter
 pip install django_react_templatetags
 pip install kanboard
 pip install PyPDF2
+pip install mator
 ```
 - `example_secure_settings.py` zu `secure_settings.py` kopieren und anpassen
 
diff --git a/schoolapps/aub/migrations/0012_auto_20190410_1416.py b/schoolapps/aub/migrations/0012_auto_20190410_1416.py
new file mode 100644
index 0000000000000000000000000000000000000000..20b7ab28c41f45520c530860f39f2b08b4778a95
--- /dev/null
+++ b/schoolapps/aub/migrations/0012_auto_20190410_1416.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.1.5 on 2019-04-10 12:16
+
+from django.conf import settings
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('aub', '0011_merge_20190318_2004'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='aub',
+            name='created_by',
+            field=models.ForeignKey(default=3, on_delete=models.SET(3), related_name='aubs',
+                                    to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AlterField(
+            model_name='aub',
+            name='status',
+            field=models.ForeignKey(default=5, on_delete=models.SET(5), related_name='aubs', to='aub.Status'),
+        ),
+    ]
diff --git a/schoolapps/dashboard/migrations/0003_auto_20190410_1416.py b/schoolapps/dashboard/migrations/0003_auto_20190410_1416.py
new file mode 100644
index 0000000000000000000000000000000000000000..31a70937195197551809a7a36ad4ed4c0c9dd44e
--- /dev/null
+++ b/schoolapps/dashboard/migrations/0003_auto_20190410_1416.py
@@ -0,0 +1,27 @@
+# Generated by Django 2.1.5 on 2019-04-10 12:16
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('dashboard', '0002_auto_20190102_1724'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='activity',
+            name='user',
+            field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE,
+                                    to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='notification',
+            name='user',
+            field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE,
+                                    related_name='notifications', to=settings.AUTH_USER_MODEL),
+        ),
+    ]
diff --git a/schoolapps/schoolapps/settings.py b/schoolapps/schoolapps/settings.py
index f96ac682aac6542372deff901714a0a5ff69fcc6..105914410a5d1c951cdd35dafce248918e3ffbcb 100755
--- a/schoolapps/schoolapps/settings.py
+++ b/schoolapps/schoolapps/settings.py
@@ -55,6 +55,7 @@ INSTALLED_APPS = [
     'django.contrib.staticfiles',
     'material',
     'django_react_templatetags',
+    'martor',
 ]
 
 MIDDLEWARE = [
@@ -148,6 +149,7 @@ USE_TZ = True
 # https://docs.djangoproject.com/en/2.0/howto/static-files/
 
 STATIC_URL = '/static/'
+STATIC_ROOT = os.path.join(BASE_DIR, "staticcollect")
 
 # Redirect to home URL after login (Default redirects to /accounts/profile/)
 LOGIN_REDIRECT_URL = '/'
@@ -229,3 +231,5 @@ logger.setLevel(logging.DEBUG)
 # Media
 MEDIA_URL = '/media/'
 MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
+
+DBSETTINGS_USE_CACHE = False
diff --git a/schoolapps/schoolapps/urls.py b/schoolapps/schoolapps/urls.py
index 2ca9b41a73e8087898a6012a388d4f7dabeb7f55..b5c7ca47e781edf69fb9e56863b319aac1387a66 100755
--- a/schoolapps/schoolapps/urls.py
+++ b/schoolapps/schoolapps/urls.py
@@ -69,7 +69,10 @@ urlpatterns = [
     # SUPPORT #
     ###########
     path('support/', include('support.urls')),
-    path("pwabuilder-sw.js", serviceworker)
+    path("pwabuilder-sw.js", serviceworker),
+
+    path('martor/', include('martor.urls')),
+
 ]
 
 urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
diff --git a/schoolapps/timetable/admin.py b/schoolapps/timetable/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..967ad9c749908399c2f8df950624439e0c5c20ad 100755
--- a/schoolapps/timetable/admin.py
+++ b/schoolapps/timetable/admin.py
@@ -1,3 +1,7 @@
 from django.contrib import admin
 
 # Register your models here.
+from timetable.models import Hint, HintClass
+
+admin.site.register(Hint)
+admin.site.register(HintClass)
diff --git a/schoolapps/timetable/migrations/0001_initial.py b/schoolapps/timetable/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5858985e0d60f1fd3c5e3ac610d112036446054
--- /dev/null
+++ b/schoolapps/timetable/migrations/0001_initial.py
@@ -0,0 +1,38 @@
+# Generated by Django 2.1.5 on 2019-04-10 12:30
+
+import datetime
+from django.db import migrations, models
+import martor.models
+
+
+class Migration(migrations.Migration):
+    initial = True
+
+    dependencies = [
+        ('untisconnect', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Hint',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('from_date', models.DateField(default=datetime.date.today, verbose_name='Startdatum')),
+                ('to_date', models.DateField(default=datetime.date.today, verbose_name='Enddatum')),
+                ('text', martor.models.MartorField(verbose_name='Hinweistext')),
+            ],
+            options={
+                'verbose_name': 'Hinweis',
+                'verbose_name_plural': 'Hinweise',
+            },
+        ),
+        migrations.CreateModel(
+            name='Timetable',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+            ],
+            options={
+                'permissions': (('show_plan', 'Show plan'),),
+            },
+        ),
+    ]
diff --git a/schoolapps/timetable/migrations/0002_hintclass.py b/schoolapps/timetable/migrations/0002_hintclass.py
new file mode 100644
index 0000000000000000000000000000000000000000..7f5dd35eaabf06322e7c310ac5e584dfd8d5f090
--- /dev/null
+++ b/schoolapps/timetable/migrations/0002_hintclass.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.1.5 on 2019-04-10 12:35
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('timetable', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='HintClass',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('class_id', models.IntegerField()),
+            ],
+        ),
+    ]
diff --git a/schoolapps/timetable/migrations/0003_auto_20190410_1634.py b/schoolapps/timetable/migrations/0003_auto_20190410_1634.py
new file mode 100644
index 0000000000000000000000000000000000000000..b2111e6ddce35c3b29ac7b64fef787d181c293af
--- /dev/null
+++ b/schoolapps/timetable/migrations/0003_auto_20190410_1634.py
@@ -0,0 +1,27 @@
+# Generated by Django 2.1.5 on 2019-04-10 14:34
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('timetable', '0002_hintclass'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='hint',
+            name='classes',
+            field=models.ManyToManyField(related_name='hints', to='timetable.HintClass'),
+        ),
+        migrations.AlterField(
+            model_name='hintclass',
+            name='class_id',
+            field=models.IntegerField(
+                choices=[(1, '5a'), (2, '5b'), (3, '5c'), (4, '5d'), (5, '6a'), (6, '6b'), (7, '6c'), (8, '6d'),
+                         (9, '7a'), (10, '7b'), (11, '7c'), (12, '7d'), (13, '8a'), (14, '8b'), (15, '8c'), (16, '8d'),
+                         (17, '9a'), (18, '9b'), (19, '9c'), (20, '9d'), (21, 'Ea'), (22, 'Eb'), (23, 'Ec'), (24, 'Ed'),
+                         (25, 'Q1a'), (26, 'Q1b'), (27, 'Q1c'), (28, 'Q1d'), (29, 'Q2a'), (30, 'Q2b'), (31, 'Q2c'),
+                         (32, 'Q2d')]),
+        ),
+    ]
diff --git a/schoolapps/timetable/migrations/__init__.py b/schoolapps/timetable/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/schoolapps/timetable/models.py b/schoolapps/timetable/models.py
index 6f186228e37d3311f0160f061d3fe7593447742d..e332cc609546f03d997bb349c98ded30d26e837d 100755
--- a/schoolapps/timetable/models.py
+++ b/schoolapps/timetable/models.py
@@ -1,24 +1,52 @@
-from django import forms
-import dbsettings
+from datetime import date
+
 from django.db import models
+from django.db.models import ManyToManyField
+from martor.models import MartorField
 
-from untisconnect.api_helper import get_terms
+from untisconnect.api import get_class_by_id, get_all_classes
+from untisconnect.models import Class
 
-choices = []
-terms = get_terms()
-for term in terms:
-    choices.append((term.id, term.name))
+classes = get_all_classes()
+class_choices = [(x.id, x.name) for x in classes]
 
 
-class Timetable(models.Model):
+class HintClass(models.Model):
+    class_id = models.IntegerField(choices=class_choices)
+
+    def __str__(self):
+        try:
+            _class = get_class_by_id(self.class_id)
+            return _class.name
+        except Exception:
+            return "Unbekannte Klasse"
+
+
+for x in classes:
+    HintClass.objects.get_or_create(class_id=x.id)
+
+
+class Hint(models.Model):
+    # Time
+    from_date = models.DateField(default=date.today, verbose_name="Startdatum")
+    to_date = models.DateField(default=date.today, verbose_name="Enddatum")
+
+    # Text
+    text = MartorField(verbose_name="Hinweistext")
+
+    # Relations
+    classes = ManyToManyField(HintClass, related_name="hints")
+
     class Meta:
-        permissions = (
-            ('show_plan', 'Show plan'),
-        )
+        verbose_name = "Hinweis"
+        verbose_name_plural = "Hinweise"
 
 
-class UNTISSettings(dbsettings.Group):
-    term = dbsettings.IntegerValue(widget=forms.Select, choices=choices)
 
 
-untis_settings = UNTISSettings()
+
+class Timetable(models.Model):
+    class Meta:
+        permissions = (
+            ('show_plan', 'Show plan'),
+        )
diff --git a/schoolapps/timetable/settings.py b/schoolapps/timetable/settings.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc4ffa73a63bb21d84b7870958bd0de7fd9727a6
--- /dev/null
+++ b/schoolapps/timetable/settings.py
@@ -0,0 +1,16 @@
+import dbsettings
+from django import forms
+
+from untisconnect.api_helper import get_terms
+
+choices = []
+terms = get_terms()
+for term in terms:
+    choices.append((term.id, term.name))
+
+
+class UNTISSettings(dbsettings.Group):
+    term = dbsettings.IntegerValue(widget=forms.Select, choices=choices)
+
+
+untis_settings = UNTISSettings()
diff --git a/schoolapps/timetable/views.py b/schoolapps/timetable/views.py
index 83b97686a46bb586706963df19f07e6e2603f418..8f5176607aa97fe5ce435a532f9873ca1c67c36c 100755
--- a/schoolapps/timetable/views.py
+++ b/schoolapps/timetable/views.py
@@ -17,7 +17,7 @@ from userinformation import UserInformation
 
 from schoolapps.settings import BASE_DIR
 
-
+from .models import Hint
 def get_all_context():
     teachers = get_all_teachers()
     classes = get_all_classes()
diff --git a/schoolapps/untisconnect/api.py b/schoolapps/untisconnect/api.py
index 446158d962abb7d56a6dd540aea642035a8e6c97..a840e77f79d18ba9a9dadce7449dfe194621c70a 100755
--- a/schoolapps/untisconnect/api.py
+++ b/schoolapps/untisconnect/api.py
@@ -2,7 +2,7 @@ from django.conf import settings
 
 from untisconnect.api_helper import get_term_by_id, run_using, untis_date_to_date, date_to_untis_date
 from . import models
-from timetable import models as models2
+from timetable.settings import untis_settings
 
 
 def run_all(obj, filter_term=True):
@@ -15,7 +15,7 @@ def run_one(obj, filter_term=True):
 
 def run_default_filter(obj, filter_term=True):
     # Get term by settings in db
-    TERM_ID = models2.untis_settings.term
+    TERM_ID = untis_settings.term
     TERM = get_term_by_id(TERM_ID)
     SCHOOL_ID = TERM.school_id  # 705103
     SCHOOLYEAR_ID = TERM.schoolyear_id  # 20172018