Zum Inhalt

easySale Technisches Handbuch

Willkommen im technischen Handbuch der easySale-Plattform von Tech-Schuppen.

easySale ist eine B2B-SaaS-Lösung für den Lebensmittelgroßhandel und Direktvermarkter.
Die Plattform besteht aus einem ERP-System für den Betrieb und einer Shop-App für Kunden — vollständig isoliert pro Mandant, betrieben auf Google Firebase.


Systemübersicht

Komponente Technologie Beschreibung
ERP Flutter App Flutter (Web/iOS/Android) Verwaltung von Kunden, Artikeln, Bestellungen
Shop Flutter App Flutter (Web/iOS/Android) Bestellportal für Endkunden
Backend Firebase (Firestore, Auth, Storage) Datenbank, Authentifizierung, Dateispeicher
Cloud Functions Node.js (Firebase Functions) Geschäftslogik, Bestellverarbeitung, Push-Notifications
CI/CD GitHub Actions Automatische Builds und Deployments

Architekturprinzip

easySale verwendet eine Single-Tenant Multi-Instance-Architektur:

  • Jeder Kunde erhält eine komplett eigene Firebase-Instanz (maximale Datenisolation)
  • Der Quellcode ist zu 80% gemeinsam (Core-Repo) und zu 20% kundenspezifisch (Client-Repo)
  • Bugfixes im Core werden automatisch auf alle Clients ausgerollt
Core-Repo (easySale)          Client-Repos (je Kunde)
┌─────────────────────┐       ┌─────────────────────────────┐
│  ERP Base App       │ ──┐   │  easysale-client-<slug>     │
│  Shop Base App      │   ├──▶│  ├── erp/ (Git-Dependency)  │
│  Shared Libraries   │   │   │  ├── firebase/ (Config)      │
│  Cloud Functions    │   │   │  └── .github/workflows/      │
│  Onboarding-Tools   │   │   └─────────────────────────────┘
└─────────────────────┘   └──▶  (weiterer Client ...)

Handbuch-Navigation

  • :material-cube-outline: Architektur
    Multi-Tenant-Konzept, Client-Override-System, Shared Packages

  • :material-code-braces: Entwicklung
    Lokales Setup, Lokalisierung, UI-Patterns, Feature-Konzepte

  • :material-rocket-launch: Deployment
    CI/CD-Pipelines, Firebase-Setup, GitHub Actions, CORS

  • :material-shield-check: Sicherheit
    OWASP-Analyse, Security Audit, Dependency Scanning

  • :material-scale-balance: DSGVO
    Zugriffskonzept, Löschkonzept, Sub-Auftragsverarbeiter

  • :material-check-all: Qualität
    Testkonzept kritischer Prozesse, Core/Client Erweiterungen

  • :material-account-plus: Client-Onboarding
    Schritt-für-Schritt: Neuen Kunden anlegen und deployen


Repository-Struktur

easySale/                          ← Core-Repo (dieses Repo)
├── core/
│   ├── apps/
│   │   ├── erp_system/            ← ERP Flutter App (Base)
│   │   └── shop_system/           ← Shop Flutter App (Base)
│   ├── shared/                    ← Shared Flutter Package
│   ├── functions/                 ← Firebase Cloud Functions (Node.js)
│   └── docs/                      ← Technische Konzept-Dokumente
├── docs/                          ← DSGVO + Deployment Konzepte
├── onboarding/                    ← Automatisiertes Client-Onboarding
├── scripts/                       ← Build & Setup Hilfsskripte
├── handbook/                      ← Dieses Technische Handbuch (MkDocs)
├── mkdocs.yml                     ← Handbuch-Konfiguration
└── firebase.json                  ← Firebase Multi-Project Config

Letzte Aktualisierung: März 2026 — Tech-Schuppen