3.3 KiB
3.3 KiB
Shopsystem — Projektrichtlinien
Projekt
Custom E-Commerce Shopsystem (B2C + B2B), weltweit einsetzbar, als verkaufbares Produkt geplant.
Architektur
- App-basiertes System: Jede Funktion ist eine App mit Manifest (Abhängigkeiten, Konflikte, Pflicht/Optional)
- Core: Minimaler Kern (Auth, API-Router, App-Loader, Event-Bus, DI-Container)
- Kommunikation zwischen Apps: Events (lose Kopplung) und Dependency Injection (keine direkten Imports)
- Dritt-Entwickler können eigene Apps bauen (Marketplace-Konzept)
Tech-Stack
- Backend: Python + FastAPI — Tooling:
uv,ruff,pytest - Datenbank: PostgreSQL (Write-Store) + Redis (Read-Store)
- Frontend: Vue 3 + Vite + TypeScript + Pinia + Vue Router — Tooling:
pnpm,eslint,prettier,vitest. Nur Web, responsives Design. Zwei getrennte Vue-Apps mit separatem Build:shopundadmin. - Auth: JWT (Access + Refresh),
argon2für Passwort-Hashing - KI: Ollama (lokal) via RAG — Standard-Modelle
llama3.1(Chat) +nomic-embed-text(Embeddings), per Abstraktion austauschbar - Suche: austauschbar per Such-Abstraktion (Standard Meilisearch)
- DB-Migrationen: Alembic (SQLAlchemy)
- i18n: DE + EN initial
- Dev-Infrastruktur:
docker-composemit Postgres, Redis, Meilisearch, Ollama - Jede App bringt Manifest (
manifest.yaml), Migrationen, API-Endpunkte, Frontend-Komponenten, Events und Übersetzungen mit
Betrieb
- Single-Shop pro Instanz (kein Multi-Tenant). Mehrere Shops → mehrere Deployments.
Repo-Struktur
/backend FastAPI-Core + App-Loader
/frontend/shop Vue-App Kundensicht
/frontend/admin Vue-App Admin
/apps Core-Apps und optionale Apps als Python-Packages
KI-Integration
- Shop-Seite: KI-Helfer für natürlichsprachliche Produktsuche (RAG über Produkte/Kategorien).
- Admin-Seite: KI-Chatbox auf der Startseite. Befehle und JSON-Bulk-Input werden als Vorschlags-Cards dargestellt. Fehlende Felder sind in der Card editierbar. Ausführung erst nach Bestätigung durch den Admin — KI führt nie direkt aus.
Datenfluss
- PostgreSQL ist die Quelle der Wahrheit (alle Schreiboperationen)
- Redis ist die Lese-Schicht (Frontend liest NUR aus Redis)
- Sync: Sofort-Aktualisierung bei Änderungen + Scheduler als Sicherheitsnetz
- Frontend sieht nie die DB-Komplexität, nur schnelle Redis-Reads
Umgebungen
APP_ENV=dev|staging|productionsteuert Verhalten- Dev: Seed-Daten, Mock-Services, Hot-Reload, Debug-Logging
- Staging: Stripe Testmodus, Catch-All E-Mails
- Production: Echte Zahlungen, Caching an
Implementierter Stand (Prototyp)
- Alle 8 Module aus
module.mdsind lauffähig: Core, Auth, Catalog, Cart, Checkout, Orders+Mail, AI-Core (RAG/pgvector), AI-Shop-Suche (hybrid), AI-Admin-Chat (Plan/Execute mit Vorschlags-Cards). - Keine Tests (Prototyp).
- Dummy-Payment, Mailhog für Dev-Mails, Bild-Upload lokal in
./uploads. - Starten per
make install && make infra && make migrate && make seed && make reindex && make dev. Details inQUICKSTART.md.
Analyse-Dokument
shopsystem-analyse.tex— Vollständige Analyse (34 Seiten), nicht mehr anpassen.
Arbeitsweise
- Antworten kompakt halten.
- KI-gestützter Workflow: Prototyp → Refactoring → Refactoring.