diff --git a/compose/production/django/start b/compose/production/django/start
index 297e610..80e9786 100644
--- a/compose/production/django/start
+++ b/compose/production/django/start
@@ -5,6 +5,6 @@ set -o pipefail
set -o nounset
-python /app/manage.py collectstatic --noinput
python /app/manage.py compress
+python /app/manage.py collectstatic --noinput
/usr/local/bin/gunicorn config.wsgi --bind 0.0.0.0:5000 --chdir=/app
diff --git a/config/settings/base.py b/config/settings/base.py
index 9edcc14..a7d9a5f 100644
--- a/config/settings/base.py
+++ b/config/settings/base.py
@@ -142,8 +142,6 @@ STATIC_ROOT = str(ROOT_DIR("staticfiles"))
STATIC_URL = "/static/"
# https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_DIRS
STATICFILES_DIRS = [str(APPS_DIR.path("static"))]
-STATICFILES_STORAGE = 'schickmacher.storage.WhiteNoiseStaticFilesStorage'
-
# https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-finders
STATICFILES_FINDERS = [
"django.contrib.staticfiles.finders.FileSystemFinder",
diff --git a/schickmacher/renderer/templatetags/__init__.py b/schickmacher/renderer/templatetags/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/schickmacher/renderer/templatetags/extra_filters.py b/schickmacher/renderer/templatetags/extra_filters.py
deleted file mode 100644
index b05ae2e..0000000
--- a/schickmacher/renderer/templatetags/extra_filters.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from django import template
-import re
-
-register = template.Library()
-
-@register.filter
-def escape_css_content(value):
- return re.sub(r'''['"\n\\]''', lambda m: '\{:06X}'.format(ord(m.group())), value)
diff --git a/schickmacher/renderer/tests/test_extra_filters.py b/schickmacher/renderer/tests/test_extra_filters.py
deleted file mode 100644
index 6c4925d..0000000
--- a/schickmacher/renderer/tests/test_extra_filters.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from schickmacher.renderer.templatetags.extra_filters import escape_css_content
-
-# we use the padded 6 digit css escape sequences
-# https://www.w3.org/International/questions/qa-escapes
-def test_css_content():
- assert escape_css_content("head\"tail") == "head\\000022tail"
- assert escape_css_content("head\'tail") == "head\\000027tail"
- assert escape_css_content("head\\tail") == "head\\00005Ctail"
- assert escape_css_content("head\ntail") == "head\\00000Atail"
- assert escape_css_content("\"\"") == "\\000022\\000022"
- assert escape_css_content("\\\\") == "\\00005C\\00005C"
- assert escape_css_content("ABCD1234
") == "ABCD1234"
diff --git a/schickmacher/static/images/banner.jpg b/schickmacher/static/images/banner.jpg
index a81a37e..8d7aab8 100644
Binary files a/schickmacher/static/images/banner.jpg and b/schickmacher/static/images/banner.jpg differ
diff --git a/schickmacher/static/images/banner.svg b/schickmacher/static/images/banner.svg
new file mode 100644
index 0000000..d5d62ef
--- /dev/null
+++ b/schickmacher/static/images/banner.svg
@@ -0,0 +1,700 @@
+
+
+
diff --git a/schickmacher/static/images/favicons/favicon.ico b/schickmacher/static/images/favicons/favicon.ico
index 33f5cbc..a40e91d 100644
Binary files a/schickmacher/static/images/favicons/favicon.ico and b/schickmacher/static/images/favicons/favicon.ico differ
diff --git a/schickmacher/static/images/logo.png b/schickmacher/static/images/logo.png
new file mode 100644
index 0000000..1c1086a
Binary files /dev/null and b/schickmacher/static/images/logo.png differ
diff --git a/schickmacher/static/images/qabel-kl.png b/schickmacher/static/images/qabel-kl.png
new file mode 100644
index 0000000..5164222
Binary files /dev/null and b/schickmacher/static/images/qabel-kl.png differ
diff --git a/schickmacher/static/sass/colors.scss b/schickmacher/static/sass/colors.scss
index 191c1d6..3631571 100644
--- a/schickmacher/static/sass/colors.scss
+++ b/schickmacher/static/sass/colors.scss
@@ -1,2 +1,2 @@
-$orange: rgb(74, 60, 255);
+$orange: rgb(255, 105, 15);
diff --git a/schickmacher/static/sass/project.scss b/schickmacher/static/sass/project.scss
index 787c6a5..bf4ec76 100644
--- a/schickmacher/static/sass/project.scss
+++ b/schickmacher/static/sass/project.scss
@@ -3,7 +3,7 @@
// project specific CSS goes here
////////////////////////////////
-//Variables//
+ //Variables//
////////////////////////////////
// Alert colors
@@ -16,7 +16,7 @@ $dark-pink: #eed3d7;
$red: #b94a48;
////////////////////////////////
-//Alerts//
+ //Alerts//
////////////////////////////////
// bootstrap alert CSS, translated to the django-standard levels of
@@ -34,16 +34,6 @@ $red: #b94a48;
color: $red;
}
-.markdownx {
- display: flex;
- column-gap: 2.5em;
-}
-
-.markdownx-editor {
- width: 50%;
-}
-
.markdownx-preview {
- width: 50%;
@import 'render';
}
diff --git a/schickmacher/static/sass/render.scss b/schickmacher/static/sass/render.scss
index d4babcd..193da10 100644
--- a/schickmacher/static/sass/render.scss
+++ b/schickmacher/static/sass/render.scss
@@ -12,7 +12,7 @@
}
@bottom-center {
- content: '';
+ content: 'qabel.de';
font-weight: bold;
color: $orange;
}
diff --git a/schickmacher/storage.py b/schickmacher/storage.py
deleted file mode 100644
index a89f6e9..0000000
--- a/schickmacher/storage.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from whitenoise.storage import CompressedManifestStaticFilesStorage
-
-
-class WhiteNoiseStaticFilesStorage(CompressedManifestStaticFilesStorage):
- manifest_strict = False
\ No newline at end of file
diff --git a/schickmacher/templates/renderer/render_form.html b/schickmacher/templates/renderer/render_form.html
index cb7e8b0..f0db677 100644
--- a/schickmacher/templates/renderer/render_form.html
+++ b/schickmacher/templates/renderer/render_form.html
@@ -17,5 +17,7 @@
{% csrf_token %}
{{ form|crispy }}
+
{{ form.media }}
+
{% endblock %}
diff --git a/schickmacher/templates/renderer/rendered.html b/schickmacher/templates/renderer/rendered.html
index d3f0198..2ca154b 100644
--- a/schickmacher/templates/renderer/rendered.html
+++ b/schickmacher/templates/renderer/rendered.html
@@ -1,4 +1,4 @@
-{% load extra_filters %}{% load static compress tz %}
+{% load static compress tz %}
@@ -16,7 +16,7 @@
content: "{{ date | date:'d.m.Y' }}";
}
@top-left {
- content: "{{ title | escape_css_content | safe }}"
+ content: "{{ title }}"
}
@top-right-corner {
}
diff --git a/test.md b/test.md
index 6acc5a5..a9b6a6d 100644
--- a/test.md
+++ b/test.md
@@ -1,3 +1,167 @@
+# Lead Developer
+ - Jahrgang: 1988
+ - Ausbildung: Bachelor of Science Informatik, Leibniz Universität Hannover
+
+## Fachkenntnisse
+### Softwareentwicklung
+#### Kernkompetenzen
+ - Agile Development, Test-Driven-Development
+ - Reactive Design, Microservices
+ - Clean Architecture, Domain Driven Development
+ - OpenSource Lizenzen im kommerziellen Einsatz
+
+#### Tiefgreifende Erfahrung
+ - Testmanagement und -automatisierung (xUnit, Selenium, pytest, Espresso, etc)
+ - Logisches Datenbankdesign, relational und NoSQL (PostgreSQL, MySQL / MariaDB, SQLite, MongoDB, Redis, Elasticsearch)
+ - Android App-Entwicklung (RxJava, MVVM, Jetpack, Architecture Components, USB-CDC)
+ - Python (Django, Django-Rest-Framework, Tornado), Kotlin, Java (Spring Boot), PHP (Yii, Zend Framework 3), Ruby (Rails)
+ - Web-Frontends mit Angular (Material Design, Redux), jQuery, TypeScript, JavaScript
+
+#### Grundlegende Erfahrung
+ - Oracle DB, C++ (embedded development), .NET, C#, Haskell, Go
+
+### Infrastruktur
+ - Deployment und Integration bei Amazon Web Services (S3, EC2) und Firebase
+ - Git, SVN, Mercurial
+ - JetBrains Toolchain (Hub, YouTrack, Teamcity, Upsource), Jenkins, Jira, GoCD, Redmine
+ - Linux Server, nginx, Docker, Docker-Compose
+
+### Datenschutz/Datensicherheit
+ - Privacy by Design in der Praxis, DSGVO-Zusammenhänge
+ - Implementation intern entwickelter Kryptographieprotokolle, Entwicklung und Review von Kryptographieprotokollen
+ - Auditierung von Full-Stack Webanwendungen
+
+### Wissensvermittlung
+ - Konzeption von Präsentationen und Vorträgen, Durchführung von Präsentationen und Vorträgen
+ - Entwicklerschulungen, Beratung für Software-Architektur, Security by Design und Teamleitung
+
+## Weitere Kenntnisse
+### Branchen
+ - Universitäten
+ - Veranstaltungsbranche
+ - Medizinbranche
+ - Büroelektronik
+ - Telekommunikationsbranche
+
+### Sprachen
+ - Deutsch (Muttersprache)
+ - Englisch (fließend)
+
+## Ausgewählte Projekte
+### 2019
+#### Niedersächsische Tierseuchenkasse, Hannover
+Diverse Module einer Website mit Integration von Services Dritter
+
+Technologien
+ - PHP 7.2, Zend Framework 3, PHPUnit
+ - Bootstrap 3, jQuery
+ - Docker
+ - MySQL/MariaDB
+
+
+### 2019
+#### Arconic Fastening Systems, Hildesheim
+Informationsflussanalyse und Erarbeitung von Optimierungspotenzialen im Kontext von Industrie 4.0 in einem
+Hauptfertigungsstandort anhand von Interviews und bestehender Dokumentation
+ - Interdisziplinäre Zusammenarbeit mit dem Institut für Integrierte Produktion Hannover
+
+### 2018
+#### Büroelektronik Konzern, Hannover
+Implementierung eines Mock-Ups zur Demonstration eines neuen kryptographischen
+Konzepts und seiner Anwendungsmöglichkeiten
+ - Entwicklung eines Mock-Ups
+Technologien
+ - Angular, Clarity Design
+
+#### Büroelektronik Konzern, Hannover
+Privacy Firewall zur Einstufung personenbezogener Daten in
+Unternehmensnetzwerken als Teil eines Großprojekts
+ - Entwicklung einer Server Applikation
+ - Beratung in den Bereichen Natural Language Processing und KI
+ - Review der Gesamtarchitektur mit Bezug auf IT-Security und Performance / Skalierung
+
+Technologien
+ - Python, MQTT
+ - spaCy - Industrial Streng Natural Language Processing
+
+### 2017 - 2018
+#### Softwareentwicklungsbranche, Hannover
+Entwicklung einer sicheren Telekommikationslösung mit IoT-Komponenten
+ - Software-Entwicklung (Android, Embedded, Webserver)
+ - Leitung eines verteilten und interdisziplinären Teams
+
+Technologien
+ - C++ auf ARM32
+ - Kotlin, Python, Django
+ - Angular, Typescript, Clarity Design
+ - WebSockets, WebRTC
+ - USB-CDC mit Android Device als USB-Host
+ - Protobuf, serielle Protokolle
+ - Docker
+
+### 2017
+#### Frankiermaschinenhersteller, Berlin
+Auditing einer umfangreichen online Software für digitale Signaturen
+ - Durchführung der Auditierung
+ - Coaching der Teamleitung (insb. Testing, Teamführung und Kommunikation
+mit der Projektleitung)
+ - Beratung bzgl. Verbesserung der vorhanden Entwicklungsprozesse
+hinsichtlich agile Development
+
+#### Büroelektronik Konzern, Hannover
+Entwicklung eines Demonstrators für eine smarte Arbeitsumgebung unter
+Berücksichtigung von Privacy-by-design and default Vorgaben
+ - Software Entwicklung
+
+Technologien
+ - MQTT, IoT
+ - Windows 10 C# .NET App
+
+#### Büroelektronik Konzern, Hannover
+Entwicklung eines Demonstrators zum Einsatz von Attribute-Based-Credentials zur anonymen Authentifizierung und Authorisierung von Mitarbeitern mithilfe von Smart Devices
+ - Software-Entwicklung
+ - Konzept-Entwicklung - Attribute-Based-Credentials im Enterprise Umfeld
+
+Technologien
+ - Python, Flask
+ - Angular, Material Design
+ - Android, Kotlin, AndroidWear (Smartwatches), NFC
+
+### 2015 - 2016
+#### Qabel GmbH (internes Projekt), Hannover
+Kryptographie-Plattform zur sicheren Kommunikation mit Ende-zu-Ende Verschlüsselung und Dokumentenablage in der Amazon Cloud mit Client-Anwendungen für Android und Windows/Mac/Linux
+
+Technologien
+ - Java, Kotlin, Android
+ - Python, Django
+ - Docker
+ - Angular
+ - PostgreSQL, SQLite
+
+### 2011 - 2014
+#### Event Software Hersteller, Hannover
+Entwicklung einer modularen und skalierbaren Webanwendung zur Organisation von Veranstaltungen wie beispielsweise Messen
+ - Performance-optimiertes ORM auf Basis von MongoDB und Redis
+ - Massen-Email-Versand in Hintergrundprozessen
+
+Technologien
+ - Python
+ - PHP, Yii-Framework
+ - MongoDB, Redis
+ - HTML 5, CSS3, jQuery, DataTables
+
+### 2008 - 2012
+#### Juristische Fakultät, Leibniz Universität Hannover
+Administration, Webentwicklung und Druck-Layouting
+
+Technologien
+ - PHP
+ - Python
+ - LaTeX
+ - MySQL
+
+***
+
# Markdown Test Page
* [Headings](#Headings)