Meine Projekte

Portfolio — Docker & Django Ecosystem

Sanatify

Live L

Multi-Tenant SaaS-Plattform für Hebammenpraxen in der Schweiz. Verwaltet Anträge (Claims) für Hausgeburten/Wochenbettbetreuung, Patientenüberweisungen zwischen Praxen, Stripe-basierte Abonnements und generiert ausgefüllte …

Multi-Tenant SaaS-Plattform für Hebammenpraxen in der Schweiz. Verwaltet Anträge (Claims) für Hausgeburten/Wochenbettbetreuung, Patientenüberweisungen zwischen Praxen, Stripe-basierte Abonnements und generiert ausgefüllte PDF-Formulare via FastAPI-Microservice.

Docker Container

Container Image Beschreibung
sanatify_db postgres:15 PostgreSQL-Datenbank für Multi-Tenant-Daten (Praxen, Claims, Referrals)
sanatify_django custom (Django 5.2) Django-Backend mit Tenant-Management, Claims-Workflow und Stripe-Integration
sanatify_fastapi custom (FastAPI) Interner Microservice für PDF-Generierung (Antragsformulare, Excel-Export)

Konfiguration

Datenbank

PostgreSQL 15

Port

9000:8000 (Django), 8080 intern (FastAPI)

Volumes

postgres_data, media_volume (shared Django & FastAPI)

Reverse Proxy

Traefik mit Cloudflare SSL (sanatify.ch + www)

Zahlungen

Stripe (Customer ID, Subscriptions)

Datenobjekte

Tenant UserProfile LicensePlan TenantSubscription Claim Referral

Business Features

  • Multi-Tenant Praxisverwaltung — Isolierte Mandanten mit eigenem Key, Logo, IBAN und Benutzergruppen
  • Claims-Workflow — Digitale Erfassung von Anträgen für Hausgeburten/Wochenbettbetreuung
  • PDF-Formulargenerierung — Automatisches Ausfüllen offizieller Antragsformulare via FastAPI
  • Überweisungssystem — Patientenüberweisungen zwischen Praxen mit Dokumenten und Befunden
  • Stripe Abo-Verwaltung — Lizenzpläne mit Trial, monatlicher/jährlicher Abrechnung
  • Schweizer Compliance — IBAN-Validierung, ZSR-Nummern, Kantonsauswahl, MWST-Handling

Stock Keeper

Live L

Omnichannel-Warenwirtschafts- und POS-Lösung für Einzelhandel und Gastronomie. Tablet-optimiertes Kassensystem mit Barcode-Scanner, SumUp-Zahlung, automatischer Lagerverwaltung mit Audit Trail, Einkaufs-Workflow, Shopify-Sync und …

Omnichannel-Warenwirtschafts- und POS-Lösung für Einzelhandel und Gastronomie. Tablet-optimiertes Kassensystem mit Barcode-Scanner, SumUp-Zahlung, automatischer Lagerverwaltung mit Audit Trail, Einkaufs-Workflow, Shopify-Sync und Buchhaltungs-Export.

Docker Container

Container Image Beschreibung
stock_keeper_db mysql:8.0 MySQL-Datenbank für Produkte, Lagerbestände, Verkäufe und Bestellungen
stock_keeper_web custom (Django 5.x) Django-Backend mit POS-Kasse, Lagerverwaltung und Shopify-Integration

Konfiguration

Datenbank

MySQL 8.0

Port

8008:8000 (Web), 3309:3306 (DB)

Zahlungen

SumUp (App-Switch), Shopify Payments Webhook

Datenobjekte

Product StockMovement PurchaseOrder Sale SaleItem

Business Features

  • Touch-POS Kasse — Tablet-optimierter Checkout mit Barcode-Scanner und SumUp-Zahlung
  • Lagerverwaltung mit Audit Trail — Lückenlose Bestandshistorie aller Bewegungen
  • Automatische EAN/SKU-Generierung — Interne EAN-13 Barcodes und kategoriebasierte SKUs
  • Einkaufs-Workflow — Bestellung > Wareneingang mit Moving-Average-Preisberechnung
  • Shopify Sync — Webhook-Integration für automatische Bestandsbuchung bei Online-Verkäufen
  • Buchhaltungs-Export — PDF-Umsatzlisten nach Zeitraum und Kategorie, getrennt nach MWST

QR Generator

Live S

Design-Studio für QR-Codes mit Live-Vorschau via HTMX. Unterstützt Website-, WLAN-, vCard- und Freitext-QR-Codes mit anpassbaren Styles, Frames, Farben, Logos und …

Design-Studio für QR-Codes mit Live-Vorschau via HTMX. Unterstützt Website-, WLAN-, vCard- und Freitext-QR-Codes mit anpassbaren Styles, Frames, Farben, Logos und Custom Fonts. Export als hochauflösendes JPEG.

Docker Container

Container Image Beschreibung
qr_gen_web custom (Django 5.0) Django-App mit QR-Code Design Studio und HTMX Live-Vorschau

Konfiguration

Datenbank

SQLite

Port

8009:8000

Datenobjekte

QRCodeEntry

Business Features

  • QR-Code Design Studio — Anpassbare QR-Codes mit 5 Styles, Frames, Farben und Custom Fonts
  • HTMX Live-Vorschau — Echtzeit-Vorschau aller Design-Änderungen ohne Page Reload
  • Vielseitige QR-Typen — Website-URL, WLAN-Zugang, digitale Visitenkarte (vCard) und Freitext

Menu Concierge

Live S

KI-gestützter Menüplanungs-Assistent mit Chat-Interface. Generiert Wochenpläne basierend auf Personenzahl und Vorlieben, erstellt automatisch Einkaufslisten mit Google Keep Integration. Mobile-First UI …

KI-gestützter Menüplanungs-Assistent mit Chat-Interface. Generiert Wochenpläne basierend auf Personenzahl und Vorlieben, erstellt automatisch Einkaufslisten mit Google Keep Integration. Mobile-First UI mit Tailwind CSS und HTMX.

Docker Container

Container Image Beschreibung
menu_concierge custom (Django 5.x) Django-App mit KI-Menüplanung, Chat-UI und Google Keep Integration

Konfiguration

Datenbank

SQLite

Port

8085:8000

AI Provider

Google Gemini + OpenAI

Datenobjekte

MealPlan Meal Ingredient

Business Features

  • KI-Menüplanung — Automatische Generierung von Wochenplänen basierend auf Personenzahl und Vorlieben
  • Chat-Interface — Mobile-First Chat-UI (ChatGPT-Style) mit HTMX
  • Smart Shopping List — Konsolidierte Einkaufsliste mit Google Keep Integration

Viraflow

Live M

Trend-Discovery und Content-Pipeline für Amazon Affiliate Marketing. Identifiziert Trendprodukte via Amazon-Scores, generiert Video-Scripts (Hook/Body/CTA) mit Audio, und verwaltet Affiliate-Links mit …

Trend-Discovery und Content-Pipeline für Amazon Affiliate Marketing. Identifiziert Trendprodukte via Amazon-Scores, generiert Video-Scripts (Hook/Body/CTA) mit Audio, und verwaltet Affiliate-Links mit Partner-Tags für den DACH-Markt.

Docker Container

Container Image Beschreibung
viraflow_db mysql:8.0 MySQL-Datenbank für Trends, Kategorien und Video-Scripts
viraflow_web custom (Django) Django-Backend für Trend-Analyse, Script-Generierung und Affiliate-Links

Konfiguration

Datenbank

MySQL 8.0

Port

8012:8000 (Web), 3311:3306 (DB)

AI Provider

OpenAI (Script-Generierung)

Datenobjekte

Category Trend VideoScript

Business Features

  • Amazon Trend Discovery — Automatische Identifikation von Trendprodukten mit Amazon- und Google-Score
  • Video Script Pipeline — KI-generierte Scripts (Hook/Body/CTA) mit Audio-Generierung
  • Affiliate Link Management — Automatische Partner-Tag-Integration und ASIN-Extraktion

Sowavoe

Live M

Mitglieder-Plattform für den Wanderverein Solothurner Wandervögel. Tourenplanung, Anmeldung, Fotoarchiv und Mitgliederverwaltung. Django + HTMX + Alpine.js + Tailwind CSS.

Mitglieder-Plattform für den Wanderverein Solothurner Wandervögel. Tourenplanung, Anmeldung, Fotoarchiv und Mitgliederverwaltung. Django + HTMX + Alpine.js + Tailwind CSS.

Docker Container

Container Image Beschreibung
sowavoe-db postgres:15 PostgreSQL-Datenbank für Sowavoe
sowavoe-django custom (Django) Django-App mit Gunicorn, serviert via Traefik

Konfiguration

Datenbank

PostgreSQL 15

Auth

Custom AbstractBaseUser (Mitglied-Nr. Login), django-axes Brute-Force-Schutz

E-Mail

Infomaniak SMTP, noreply@solothurner-wandervoegel.ch

Datenobjekte

Mitglied Tour Anmeldung TourFoto News

Business Features

  • Tourenprogramm — Wanderungen planen mit SAC-Schwierigkeit, Kondition und Route
  • Online-Anmeldung — Mitglieder melden sich für Touren an mit Warteliste
  • Fotoarchiv — Fotos zu Touren hochladen mit automatischer Thumbnail-Generierung
  • Mitgliederverwaltung — Custom Auth mit Mitglied-Nr., Adresse und Tourenleiter-Rolle

Wordblitz

Development L

Mobile Word-Game Backend (REST API). Tägliches Wort-Puzzle, Duel-Modus, Leaderboards und Streak-System. Django REST Framework + Celery + Redis + JWT …

Mobile Word-Game Backend (REST API). Tägliches Wort-Puzzle, Duel-Modus, Leaderboards und Streak-System. Django REST Framework + Celery + Redis + JWT Auth.

Docker Container

Container Image Beschreibung
wordblitz_db postgres:16-alpine PostgreSQL-Datenbank für Wordblitz
wordblitz_redis redis:7-alpine Redis für Caching und Celery Broker
wordblitz_django custom (Django REST) Django REST API Backend
wordblitz_celery custom (Celery) Celery Worker für async Tasks (Puzzle-Generierung, Leaderboard)
wordblitz_celery_beat custom (Celery Beat) Celery Beat Scheduler für periodische Tasks

Konfiguration

Datenbank

PostgreSQL 16-alpine

Cache/Broker

Redis 7-alpine (Cache + Celery Broker)

Auth

JWT (SimpleJWT) mit Token-Rotation und Blacklist

API

Django REST Framework + drf-spectacular (OpenAPI)

Port

8040:8000

Datenobjekte

User Puzzle DailySession Duel

Business Features

  • Tägliches Puzzle — Automatisch generiertes Wort-Puzzle jeden Tag via Celery Beat
  • Duel-Modus — 1v1 Wort-Duelle mit Invite-Code und Gewinner-Ermittlung
  • Leaderboard & Streaks — Tagesrangliste mit stündlicher Aktualisierung und Streak-Tracking

Mileja Website

Development L

Öffentliche Website für die Hebammenpraxis mileja (Basel). Angebote, Team, Kursbuchung, Kontaktformular, Wochenbett-Anfragen. Django + HTMX + Alpine.js + Tailwind CSS. …

Öffentliche Website für die Hebammenpraxis mileja (Basel). Angebote, Team, Kursbuchung, Kontaktformular, Wochenbett-Anfragen. Django + HTMX + Alpine.js + Tailwind CSS. Rebuild von WordPress/WooCommerce.

Docker Container

Container Image Beschreibung
mileja-db postgres:15 PostgreSQL-Datenbank für mileja Website
mileja-web custom (Django) Django-App mit Gunicorn, serviert via Traefik

Konfiguration

Datenbank

PostgreSQL 15

Frontend

HTMX + Alpine.js + Tailwind CSS + Bootstrap Icons

SEO

django-meta (OpenGraph + Twitter), django.contrib.sitemaps

Analytics

Eigenes PageView-Tracking mit IP-Anonymisierung, 90 Tage Retention

Port

8030:8000

Datenobjekte

Page TeamMember Service Course Booking ContactMessage WochenbettAnfrage

Business Features

  • Kursbuchung — Online-Buchung von Kursen mit Workbench-Sync
  • Wochenbett-Anfragen — Formular für Wochenbettbetreuungs-Anfragen
  • CMS-Seiten — Flexible Seiten mit Hero-Images und SEO-Feldern
  • Team-Darstellung — Hebammen-Profile mit Spezialisierungen und Foto
  • Analytics — Eigenes PageView-Tracking mit IP-Anonymisierung (DSGVO-konform)

Yoga/Kurse

Live S

Kursverwaltung und Buchungssystem für Yoga- und Pilateskurse der Hebammenpraxis mileja. Credit-System für Kundinnen, E-Mail-Benachrichtigungen.

Kursverwaltung und Buchungssystem für Yoga- und Pilateskurse der Hebammenpraxis mileja. Credit-System für Kundinnen, E-Mail-Benachrichtigungen.

Docker Container

Container Image Beschreibung
yoga-app custom (Django) Django-App für Kursverwaltung
yoga-db mysql:8.0 MySQL-Datenbank für Yoga-Kurse

Konfiguration

Datenbank

MySQL 8.0

Auth

Authelia Middleware vor Traefik (SSO)

Port

8020:8020

Datenobjekte

Courses Booking Credits

Business Features

  • Kursverwaltung — Kurse mit Kategorien, Kapazität und Datumsfilter
  • Credit-System — Prepaid-Credits kaufen und bei Kursbuchung einlösen

Budgeter

Live XS

Persönliches Finanz-Dashboard mit CSV-Import, Kategorie-Analyse, Trend-Charts und interaktivem Drill-Down. Streamlit + Pandas + Plotly.

Persönliches Finanz-Dashboard mit CSV-Import, Kategorie-Analyse, Trend-Charts und interaktivem Drill-Down. Streamlit + Pandas + Plotly.

Docker Container

Container Image Beschreibung
finanz-app custom (Streamlit) Streamlit Finanz-Dashboard auf Port 8501

Konfiguration

Framework

Streamlit (kein Django)

Daten

CSV-basiert (master_ausgaben.csv)

Port

8501:8501

Business Features

  • CSV-Import — Bankabrechnungen importieren mit automatischem Spalten-Mapping
  • Kategorie-Analyse — Ausgaben nach Kategorie als interaktiver Chart
  • KPI-Dashboard — Einnahmen, Ausgaben, Bilanz und Sparquote auf einen Blick

N8N Workflow

Live S

Self-hosted Workflow-Automatisierung mit n8n. Ermöglicht visuelle Erstellung von Automationen und Integrationen zwischen verschiedenen Diensten via Node-basiertem Editor.

Self-hosted Workflow-Automatisierung mit n8n. Ermöglicht visuelle Erstellung von Automationen und Integrationen zwischen verschiedenen Diensten via Node-basiertem Editor.

Docker Container

Container Image Beschreibung
n8n n8nio/n8n N8N Workflow-Engine mit Basic Auth und Traefik-Reverse-Proxy

Konfiguration

N8N_HOST

workflow.mileja.duckdns.org

Auth

Basic Auth + Authelia Middleware

Business Features

  • Workflow-Automatisierung — Visuelle Erstellung von Automationen zwischen Diensten
  • Webhook-Empfang — Empfängt Webhooks von externen Diensten als Workflow-Trigger

FastAPI

Live L

Zentrale API-Schicht (FastAPI + Celery) für Webhook-Verarbeitung, WooCommerce-Integration, Mooncare-Anbindung, KLARA-Buchhaltung, Inkonvenienzen-Generierung und automatisierte Builds.

Zentrale API-Schicht (FastAPI + Celery) für Webhook-Verarbeitung, WooCommerce-Integration, Mooncare-Anbindung, KLARA-Buchhaltung, Inkonvenienzen-Generierung und automatisierte Builds.

Docker Container

Container Image Beschreibung
fastapi custom (FastAPI) FastAPI-Appserver auf Port 8010 mit Traefik-TLS
redis_broker redis:latest Redis als Celery Message Broker und Result Backend
celery_worker custom (Celery) Celery Worker für asynchrone Tasks (WooCommerce, Mooncare, KLARA)
flower_monitor mher/flower:latest Flower Monitoring-UI für Celery

Konfiguration

Broker

Redis (redis://redis:6379/0)

Port

8010 (FastAPI)

CORS

https://workbench.mileja.duckdns.org

Datenobjekte

SheetData WebsiteBookingPayload

Business Features

  • WooCommerce Webhook — WooCommerce-Webhooks empfangen und verarbeiten mit HMAC-Signaturprüfung
  • Inkonvenienzen-Generierung — Excel-Formulare für Hebammen-Inkonvenienzen via Celery
  • Mooncare-Integration — Geburtsdaten-Sync, Besuche abrufen, Dossier-Check
  • KLARA Buchhaltung — Batch-Verarbeitung von Rechnungen zur Verbuchung in KLARA

Mileja Workbench

Live XL

Django-basierte Intranet-Anwendung für Hebammenpraxis Mileja. Umfasst Kunden-, Mitarbeiter-, Termin-, Kurs-, Zeiterfassungs-, Absenzen-, Spesen-, Weiterbildungs- und Dokumentenverwaltung.

Django-basierte Intranet-Anwendung für Hebammenpraxis Mileja. Umfasst Kunden-, Mitarbeiter-, Termin-, Kurs-, Zeiterfassungs-, Absenzen-, Spesen-, Weiterbildungs- und Dokumentenverwaltung.

Docker Container

Container Image Beschreibung
miwb-prod custom (Django) Django-Appserver (Gunicorn) auf Port 8001, Traefik-TLS
miwb-prod-db mysql:8 MySQL 8 Datenbank für Produktivumgebung

Konfiguration

Datenbank

MySQL 8

Port

8001:8000 (Web), 3307:3306 (DB)

FastAPI-Anbindung

http://FastAPI:8010 (interne Verbindung)

Datenobjekte

Customer Employee Appointment Course WorkItem Absences TravelExpenses Document TrainingApplication

Business Features

  • Kundenverwaltung — Kundinnen mit ET, Krankenkasse, AHV, Services und Archivierung
  • Terminkalender — Termine mit wiederkehrenden Events und SMS-Reminder
  • Kursverwaltung — Geburtsvorbereitung, Rückbildung, Yoga mit WooCommerce-Sync
  • Zeiterfassung — WorkItems mit Aktivitäten, Hausbesuch-Erkennung und Soll/Ist-Vergleich
  • Absenzenverwaltung — Ferien, Kompensation, Krankheit mit Genehmigungsworkflow
  • Reisespesen — Auto/Velo-Spesen mit Google Maps Distanzberechnung
  • Weiterbildungsmanagement — Anträge mit Kosten-/Zeitaufteilung und Jahresbudget
  • Dokumentenverwaltung — Upload mit verschlüsseltem Dateinamen und PDF-Textextraktion
  • API & Webhooks — API-Key-Verwaltung, Webhook-Empfang, FastAPI-Anbindung