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