📐 Architektur: - Cloud-basiert (SaaS) Entscheidung - Multi-Tenancy Konzept - Architektur-Diagramm 🛠️ Tech-Stack: - Deno + Oak Backend - PostgreSQL Datenbank - Vue 3 + PrimeVue Frontend - Hetzner Hosting (DSGVO) 📁 Projektstruktur: - src/ mit routes, middleware, services - docs/ mit Architektur-Doku - Basis main.ts mit Health Check
8.7 KiB
8.7 KiB
Pulse CRM - Architektur
Übersicht
Pulse CRM ist eine cloud-basierte (SaaS) Customer Relationship Management Lösung, entwickelt für den deutschen Markt mit voller DSGVO-Konformität.
Architektur-Diagramm
┌─────────────────────────────────────────────────────────────────┐
│ CLIENTS │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Web App │ │ Mobile │ │ API │ │ Webhooks │ │
│ │ (Vue 3) │ │ PWA │ │ Client │ │ │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└───────┼─────────────┼─────────────┼─────────────┼───────────────┘
│ │ │ │
└─────────────┴──────┬──────┴─────────────┘
│ HTTPS
▼
┌─────────────────────────────────────────────────────────────────┐
│ LOAD BALANCER │
│ (nginx / Traefik) │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ API GATEWAY │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Deno + Oak │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ Auth │ │ CORS │ │ Rate │ │ Logging │ │ │
│ │ │Middleware│ │Middleware│ │ Limiter │ │ │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ API ROUTES │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ /auth │ │/contacts│ │ /deals │ │/pipeline│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │/company │ │/activity│ │ /users │ │/settings│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ SERVICE LAYER │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ContactService│ │ DealService │ │ UserService │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ AuthService │ │ EmailService │ │ AuditService │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ DATA LAYER │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ PostgreSQL │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ users │ │contacts │ │ deals │ │activities│ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │companies│ │pipelines│ │ orgs │ │audit_log│ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Entscheidungen
Cloud vs. Client
Entscheidung: Cloud-basiert (SaaS)
| Kriterium | Cloud | Client |
|---|---|---|
| Installation | Keine | Erforderlich |
| Updates | Automatisch | Manuell |
| Wartung | Zentral | Pro Installation |
| Zugriff | Überall | Nur lokal |
| DSGVO | EU-Hosting | Kunde verantwortlich |
| Skalierung | Einfach | Komplex |
| Time-to-Market | Schnell | Langsam |
Multi-Tenancy
Shared Database, Separate Schemas - Jeder Kunde (Organization) hat:
- Eigene
org_idin allen Tabellen - Row-Level Security in PostgreSQL
- Isolierte Daten, geteilte Infrastruktur
Hosting (DSGVO-konform)
- Provider: Hetzner Cloud
- Standort: Falkenstein/Nürnberg, Deutschland 🇩🇪
- Backup: Täglich, 30 Tage Retention
- Verschlüsselung: TLS 1.3 (Transit), AES-256 (Rest)