Files
pulse-crm-backend/docs/ARCHITECTURE.md
Flux_bot d9e4539dd6 feat: Architektur & Tech-Stack Dokumentation
📐 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
2026-02-11 09:59:54 +00:00

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_id in 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)