102 lines
3.6 KiB
Markdown
102 lines
3.6 KiB
Markdown
# Vendoo – Feature-Dokumentation
|
||
|
||
> Lokaler Multi-Plattform Listing-Generator mit AI, Lagerverwaltung und Publishing-System.
|
||
> Stand: 2026-07-07 | Version 1.0.0
|
||
|
||
## Verbindlicher Tech Stack
|
||
|
||
- Backend: Node.js + Express als ESM
|
||
- Frontend: Vanilla HTML/CSS/JavaScript ohne Framework und ohne Build-Schritt
|
||
- Datenbank: SQLite über `better-sqlite3` im WAL-Modus
|
||
- AI: Anthropic Claude, OpenAI, OpenRouter und Ollama
|
||
- Bildverarbeitung: `sharp`
|
||
- Rich Text: Quill
|
||
- QR-Codes: QRious
|
||
- E-Mail: Nodemailer
|
||
- Auth: Scrypt, Sessions, Magic Links, Rollen `admin` und `editor`, CSRF
|
||
- Browser-Erweiterung: Chrome Manifest v3
|
||
|
||
## Verbindliche Projektstruktur
|
||
|
||
- `server.mjs`: Express-Server und API-Routen
|
||
- `lib/db.mjs`: Datenbankzugriff und `MIGRATIONS`-Array
|
||
- `lib/*.mjs`: Auth, AI, Bilder, Gebühren, Kategorien, Mailer und Plattform-APIs
|
||
- `platforms/*.mjs`: plattformspezifische Prompt- und Parsing-Logik
|
||
- `public/index.html`: Single-Page-Oberfläche
|
||
- `public/app.js`: gesamte Frontend-Logik
|
||
- `public/style.css`: Styling und Dark Mode
|
||
- `extension/`: Chrome-Erweiterung
|
||
- `db/schema.sql`: Datenbankschema
|
||
- `uploads/`: lokale Produktfotos, nicht versioniert
|
||
|
||
## Entwicklungsregeln
|
||
|
||
1. Neue DB-Spalten werden als neue Migration im `MIGRATIONS`-Array von `lib/db.mjs` ergänzt.
|
||
2. Migrationen verwenden das bestehende `try/catch ALTER TABLE`-Muster.
|
||
3. Neue DB-Funktionen werden aus `lib/db.mjs` exportiert und in `server.mjs` importiert.
|
||
4. Neue API-Routen werden in `server.mjs` angelegt.
|
||
5. Sidebar-Navigation verwendet `data-tab`.
|
||
6. Tab-Inhalte sind `<section class="tab-content">`.
|
||
7. Topbar-Titel werden über die `TAB_TITLES`-Map gesteuert.
|
||
8. Dark Mode verwendet ausschließlich CSS Custom Properties unter `[data-theme="dark"]`.
|
||
9. Die UI ist deutschsprachig.
|
||
10. SKUs werden im Format `VD-XXXX` erzeugt.
|
||
11. Schreibende Requests benötigen Session, Rollenprüfung und CSRF-Token.
|
||
|
||
## Funktionsbereiche
|
||
|
||
1. AI-Listing-Generator
|
||
2. Foto-Management und Bildeditor
|
||
3. Listing-Verwaltung und Historie
|
||
4. Vorlagen-System
|
||
5. Publishing-System einschließlich Smart Copy, Etsy, eBay und Warteschlange
|
||
6. Lagerverwaltung
|
||
7. SKU-System
|
||
8. Gebührenrechner
|
||
9. Kategorie-System
|
||
10. Etiketten- und Datenblattdruck
|
||
11. Authentifizierung und Benutzerverwaltung
|
||
12. SMTP und E-Mail
|
||
13. Systeminformationen, Backup und Restore
|
||
14. Chrome-Erweiterung für Vinted
|
||
15. Einstellungen und Provider-Konfiguration
|
||
16. Responsive UI, Dark Mode, Toasts und Quill
|
||
17. Windows-Installer mit Install, Start, Update, Repair, Uninstall und Status
|
||
|
||
## Datenbereiche
|
||
|
||
Zentrale Tabellen:
|
||
|
||
- `listings`
|
||
- `templates`
|
||
- `publish_log`
|
||
- `ebay_queue`
|
||
- `scheduled_publish`
|
||
- `settings`
|
||
- `users`
|
||
- `sessions`
|
||
- `auth_tokens`
|
||
- `rate_limits`
|
||
- `audit_log`
|
||
- `login_history`
|
||
|
||
## Online- und Docker-Zielbild
|
||
|
||
Vendoo soll zusätzlich zur lokalen Windows-Installation später als Docker-Anwendung betrieben werden können. Für öffentliche Nutzer ist ein von privaten NAS-Daten getrennter Server/VPS vorgesehen. Der NAS-Betrieb ist nur für private Nutzung oder einen streng geschlossenen Testkreis vorgesehen.
|
||
|
||
Zwingende Grundlagen:
|
||
|
||
- konfigurierbare Pfade für Datenbank, Uploads und Backups
|
||
- `PUBLIC_BASE_URL`
|
||
- Reverse-Proxy-Unterstützung und begrenztes `trust proxy`
|
||
- HTTPS und sichere Cookies
|
||
- Health- und Readiness-Endpunkte
|
||
- Secrets-Unterstützung
|
||
- nicht privilegierter Container
|
||
- konsistente SQLite-Backups
|
||
- gehärtete Upload-Verarbeitung
|
||
- dynamische OAuth-Callbacks
|
||
- spätere Organisations- und Mandantentrennung vor öffentlichem Mehrkundenbetrieb
|
||
|
||
Die ausführliche ursprüngliche Feature-Dokumentation bleibt die fachliche Referenz und soll zusammen mit dem lokalen Quellprojekt vollständig importiert werden.
|