Produktionsreifes Web-Dashboard für Zahnarztpraxen mit Advanced Analytics & Integration
DS-Insights ist eine vollständige, produktionsreife Business Intelligence Lösung für Zahnarztpraxen mit:
- 📊 Real-time KPI Dashboards - Tagesumsatz, Termine, Auslastung
- 📈 Advanced Analytics - Prognosen, Anomalie-Erkennung, Trends
- 📧 E-Mail-Benachrichtigungen - Automatische Tagesberichte & Alerts
- 📄 PDF-Export - Professionelle Reports zum Download
- 🔌 Integration API - Anbindung an Praxisverwaltungssysteme
- 🏆 Benchmarking - Vergleich mit anonymisierten Branchendaten
- 🔒 Enterprise Security - Rate Limiting, Input-Validierung, HTTPS
Neu: Probleme bei der Installation? Wir haben es einfacher gemacht!
Der Setup-Wizard führt Sie Schritt für Schritt durch die Installation:
# Unix/Mac/Linux
chmod +x wizard.sh
./wizard.sh
# Windows PowerShell
.\wizard.ps1Was macht der Wizard?
- ✅ Prüft automatisch alle Voraussetzungen
- ✅ Fragt nach Ihren Präferenzen (Development vs. Production)
- ✅ Konfiguriert alles interaktiv
- ✅ Startet optional die Services direkt
Für erfahrene Nutzer - komplett automatisiert:
# Unix/Mac/Linux
chmod +x setup.sh
./setup.sh
# Windows PowerShell
.\setup.ps1Läuft durch, installiert alles, und gibt Ihnen klare Anweisungen zum Starten.
Siehe QUICKSTART.md für eine detaillierte Schritt-für-Schritt-Anleitung.
# Unix/Mac/Linux
./health-check.sh
# Windows PowerShell
.\health-check.ps1Zeigt Ihnen sofort, was funktioniert und was nicht.
Weitere Hilfe:
- 📖 QUICKSTART.md - Schnelleinstieg in 3 Minuten
- 🔧 TROUBLESHOOTING.md - Umfassende Problemlösungen
- ✅ Health Check Scripts - Automatische Diagnose
- ✅ Vollzugriff auf alle Dashboards & Analytics
- ✅ PDF-Export von Reports
- ✅ E-Mail-Benachrichtigungen konfigurieren
- ✅ Integration API verwalten
- ✅ Praxis-Konfiguration & Einstellungen
- ✅ Zugriff auf KPIs, Trends & Benchmarks
- ✅ PDF-Reports exportieren
- ✅ Erweiterte Analytics einsehen
- ✅ Tages- und Wochenübersicht
- ✅ Kritische Termine-Liste
- ✅ No-Show-Risiko-Bewertung
- ✅ Production: PostgreSQL mit Connection Pooling
- ✅ Development: SQLite für einfaches lokales Testing
- ✅ Automatische Schema-Migration
- ✅ Optimierte Indizes für schnelle Queries
- ✅ Multi-stage Docker Builds für optimale Image-Größe
- ✅ Docker Compose Setup: Backend + Frontend + PostgreSQL + Redis
- ✅ Health Checks für alle Services
- ✅ Persistent Volumes für Daten
- ✅ Helmet - Security Headers (CSP, HSTS, etc.)
- ✅ Rate Limiting - Schutz vor Brute-Force
- ✅ Input Validation - Zod-basierte Schema-Validierung
- ✅ XSS/SQL Injection Protection
- ✅ Redis Sessions - Skalierbare Session-Speicherung
- ✅ CORS - Konfigurierbare Cross-Origin Policy
- ✅ REST API für externe Systeme
- ✅ Webhook Support mit Signatur-Verifikation
- ✅ API Key Management
- ✅ Daten Import/Export (Termine, Patienten)
- ✅ Kompatibel mit Praxisverwaltungssystemen
- ✅ Dashboard-Reports als PDF
- ✅ Benchmark-Berichte
- ✅ Professionelles Layout mit Branding
- ✅ Automatischer Download
- ✅ Tägliche Zusammenfassungen
- ✅ Kritische Termin-Alerts
- ✅ Monatliche Benchmark-Reports
- ✅ SMTP-Integration (Gmail, SendGrid, etc.)
- ✅ HTML-Templates
- ✅ Umsatz-Prognosen (nächste 1-3 Monate)
- ✅ Anomalie-Erkennung (ungewöhnliche Tage/Werte)
- ✅ Trend-Analysen (Umsatz, No-Shows, etc.)
- ✅ No-Show Wahrscheinlichkeit (ML-basierter Score)
- ✅ Automatische Insights generierung
| Technologie | Verwendung |
|---|---|
| Node.js 20 | Runtime |
| TypeScript | Type Safety |
| Express | REST API Framework |
| PostgreSQL | Production Database |
| SQLite | Development Database |
| Redis | Session Store & Caching |
| Helmet | Security Headers |
| Express-Rate-Limit | DDoS Protection |
| Zod | Schema Validation |
| PDFKit | PDF Generation |
| Nodemailer | Email Delivery |
| bcrypt | Password Hashing |
| Technologie | Verwendung |
|---|---|
| React 18 | UI Framework |
| TypeScript | Type Safety |
| Vite | Build Tool |
| Tailwind CSS | Styling |
| React Router | Navigation |
| Recharts | Data Visualization |
| Lucide React | Icons |
| Technologie | Verwendung |
|---|---|
| Docker | Containerization |
| Docker Compose | Orchestration |
| Nginx | Reverse Proxy & Static Files |
| PostgreSQL 16 | Database |
| Redis 7 | Caching & Sessions |
💡 Tipp: Nutzen Sie die automatisierten Setup-Scripts oben für eine problemlose Installation!
# Interaktiver Wizard (am einfachsten)
./wizard.sh # Unix/Mac/Linux
.\wizard.ps1 # Windows
# Oder automatisches Setup
./setup.sh # Unix/Mac/Linux
.\setup.ps1 # WindowsDie Scripts kümmern sich um alles: Dependencies, Konfiguration, Datenbank-Setup!
Wenn Sie die Installation lieber manuell durchführen möchten:
# 1. Repository klonen
git clone <your-repo-url>
cd Dampsoft-
# 2. Environment-Variablen konfigurieren
cp .env.production.example .env.production
# WICHTIG: Bearbeiten Sie .env.production mit sicheren Passwörtern!
# 3. Docker Compose starten
docker-compose --env-file .env.production up -d
# Fertig! Anwendung läuft auf:
# - Frontend: http://localhost (Port 80)
# - Backend: http://localhost:3001
# - PostgreSQL: localhost:5432
# - Redis: localhost:6379Backend starten:
cd backend
npm install
cp .env.example .env
# Optional: .env anpassen
npm run build
npm run dev→ Backend läuft auf http://localhost:3001
Frontend starten (neues Terminal):
cd frontend
npm install
npm run dev→ Frontend läuft auf http://localhost:5173
Installation überprüfen:
./health-check.sh # Unix/Mac/Linux
.\health-check.ps1 # Windows# Datenbank-Typ wählen
DB_TYPE=postgres # oder 'sqlite' für Development
# PostgreSQL Verbindung
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=ds_insights
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your-secure-password
# Redis für Sessions
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your-redis-password
# E-Mail (SMTP)
EMAIL_ENABLED=true
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
# Integration API
INTEGRATION_API_ENABLED=true
WEBHOOK_SECRET=your-webhook-secret
# Sicherheit
SESSION_SECRET=min-32-chars-random-string
CORS_ORIGIN=https://yourdomain.comVollständige Liste siehe .env.production.example
| Rolle | Passwort | Zugriff | |
|---|---|---|---|
| Praxisinhaber | owner@praxis-mueller.de | demo123 | Vollzugriff |
| Praxismanager | manager@praxis-mueller.de | demo123 | KPIs & Reports |
| Rezeption | assistant@praxis-mueller.de | demo123 | Tagesübersicht |
ds-insights/
├── backend/ # Backend (Node.js + Express)
│ ├── src/
│ │ ├── config/ # Konfiguration (DB, Env)
│ │ ├── controllers/ # HTTP Request Handler
│ │ ├── middleware/ # Auth, Security, Validation
│ │ ├── models/ # TypeScript Interfaces
│ │ ├── repositories/ # Datenzugriff (PostgreSQL/SQLite)
│ │ ├── services/ # Business-Logik
│ │ │ ├── KpiService.ts # KPI-Berechnungen
│ │ │ ├── BenchmarkService.ts
│ │ │ ├── PdfService.ts # PDF-Export
│ │ │ ├── EmailService.ts # E-Mail
│ │ │ ├── AnalyticsService.ts # Advanced Analytics
│ │ │ └── IntegrationService.ts
│ │ ├── utils/ # Hilfsfunktionen
│ │ └── index.ts # Server Entry Point
│ ├── Dockerfile # Multi-stage Production Build
│ ├── package.json
│ └── tsconfig.json
│
├── frontend/ # Frontend (React + Vite)
│ ├── src/
│ │ ├── components/ # UI-Komponenten
│ │ ├── contexts/ # React Context (Auth)
│ │ ├── pages/ # Seiten (Dashboards)
│ │ │ ├── TodayPage.tsx # Heute Dashboard
│ │ │ ├── TrendsPage.tsx # Trends & Langfrist
│ │ │ ├── BenchmarkPage.tsx # Benchmark-Vergleich
│ │ │ └── SettingsPage.tsx
│ │ ├── services/ # API-Calls
│ │ └── types/ # TypeScript Typen
│ ├── Dockerfile # Nginx Production Build
│ ├── nginx.conf # Nginx-Konfiguration
│ ├── package.json
│ └── vite.config.ts
│
├── docker-compose.yml # Orchestrierung: Backend + Frontend + DB + Redis
├── .env.production.example # Produktions-Environment-Template
└── README.md
-
Authentication & Authorization
- Session-basierte Authentifikation
- Passwort-Hashing mit bcrypt
- Rollenbasierte Zugriffskontrolle (RBAC)
- Session-Speicherung in Redis (produktions)
-
Input Validation
- Zod-Schema-Validierung für alle Eingaben
- XSS-Protection durch Sanitization
- SQL Injection Prevention (Prepared Statements)
-
Rate Limiting
- Global: 100 Requests / 15 Min
- Login: 5 Versuche / 15 Min
- IP-basiertes Tracking
-
Security Headers (Helmet)
- Content Security Policy (CSP)
- HSTS (HTTP Strict Transport Security)
- X-Frame-Options, X-Content-Type-Options
-
Weitere Maßnahmen
- CORS-Konfiguration
- Suspicious Activity Logging
- Null-Byte-Removal
- Error Handling ohne Stack Traces in Production
POST /api/auth/login
POST /api/auth/logout
GET /api/auth/meGET /api/dashboard/today
GET /api/dashboard/weekly
GET /api/dashboard/monthly?year=2024&month=11
GET /api/dashboard/trends?from=2024-01-01&to=2024-12-31GET /api/analytics/advanced
POST /api/analytics/no-show-probabilityPOST /api/export/pdf/dashboard
POST /api/export/pdf/benchmarkPOST /api/integration/import/appointments
GET /api/integration/export/appointments
POST /api/integration/webhook
POST /api/integration/api-key/generateGET /api/benchmark/overviewGET /api/practice
PUT /api/practicecd backend
npm test # Unit-Tests ausführen
npm run test:watch # Watch-Modus-
.env.productionmit sicheren Secrets konfiguriert -
SESSION_SECRETmindestens 32 Zeichen lang -
POSTGRES_PASSWORDstark und einzigartig -
REDIS_PASSWORDgesetzt -
CORS_ORIGINauf Ihre Domain gesetzt -
EMAIL_ENABLED=trueund SMTP konfiguriert (optional) - SSL-Zertifikate vorhanden (Let's Encrypt empfohlen)
- Reverse Proxy (Nginx/Traefik) für HTTPS
- Firewall konfiguriert (nur Ports 80, 443 offen)
- Backup-Strategie für PostgreSQL
- Monitoring Setup (optional: Sentry, DataDog)
- ✅ Multi-stage Docker Builds (kleinere Images)
- ✅ PostgreSQL Connection Pooling (max 20 Connections)
- ✅ Redis für Session-Caching
- ✅ Nginx Gzip-Compression
- ✅ Static Asset Caching (1 Jahr)
- ✅ Database Indizes für häufige Queries
Minimum (1-5 Praxen)
- 2 GB RAM
- 2 vCPUs
- 20 GB Storage
Empfohlen (5-20 Praxen)
- 4 GB RAM
- 4 vCPUs
- 50 GB Storage
# Backup erstellen
docker exec ds-insights-postgres pg_dump -U postgres ds_insights > backup_$(date +%Y%m%d).sql
# Wiederherstellen
cat backup.sql | docker exec -i ds-insights-postgres psql -U postgres ds_insights# Alle Container
docker-compose logs -f
# Nur Backend
docker-compose logs -f backend
# Nur Frontend
docker-compose logs -f frontendProbleme bei der Installation oder Ausführung?
# Automatischer Health Check
./health-check.sh # Unix/Mac/Linux
.\health-check.ps1 # WindowsDer Health Check zeigt Ihnen sofort:
- ✅ Was funktioniert
- ❌ Was nicht funktioniert
- 💡 Wie Sie es beheben können
📖 Siehe TROUBLESHOOTING.md für detaillierte Lösungen zu:
- Installation & Setup Problemen
- Backend-Problemen (Port-Konflikte, Datenbank-Fehler)
- Frontend-Problemen (Build-Fehler, API-Verbindung)
- Datenbank-Problemen (SQLite & PostgreSQL)
- Docker-Problemen (Container starten nicht)
- Performance-Problemen
- Security & Authentication
- Allen häufigen Fehlermeldungen
Backend startet nicht:
# Port-Konflikt beheben
lsof -ti:3001 | xargs kill -9 # Unix/Mac
# Oder Port in backend/.env ändern: PORT=3002Frontend kann Backend nicht erreichen:
# 1. Backend läuft?
curl http://localhost:3001/health
# 2. API URL korrekt?
cat frontend/.env # Sollte VITE_API_URL=http://localhost:3001 seinDocker Container starten nicht:
# Alte Container entfernen
docker-compose down
docker-compose up -d
# Logs prüfen
docker-compose logs -fImmer noch Probleme? → Siehe TROUBLESHOOTING.md für 95% aller Lösungen!
- Issues: GitHub Issues
- Pull Requests: Gerne! Bitte Tests hinzufügen.
- E-Mail: support@ds-insights.de
MIT License - siehe LICENSE-Datei für Details
Entwickelt mit ❤️ für moderne Zahnarztpraxen
Powered by:
- Node.js & TypeScript
- React & Tailwind CSS
- PostgreSQL & Redis
- Docker & Nginx
Version 1.0.0 - Production Ready 🚀