docker build -t flipflow .
docker run -p 3002:3001 --env-file .env flipflowSiehe Deployment-Guide
Multi-Plattform Arbitrage Engine — Finde unterbewertete Listings, kaufe günstig, verkaufe mit Gewinn.
- eBay API — Offizielle Browse API, Suche + Marktpreisbewertung
- Etsy API — Offizielle Open API v3
- Chrome Extension — Erfasst Listings von Kleinanzeigen, Vinted & FB Marketplace
- CSV Import — Beliebige Listings per CSV importieren
- KI-Scoring — Automatische Bewertung nach Marge, Zustand, Verkäufertyp
- Cross-Plattform Arbitrage — Beste Verkaufsplattform inkl. Gebühren berechnet
- HITL Review — Human-in-the-Loop Entscheidungsprozess
- Token-Zugang — Admins erstellen Tokens, User geben sie auf der Landing Page ein
- IndexedDB + localStorage — Duale Persistenz, offline-fähig
- Daten Export/Import — JSON Backup & Wiederherstellung
- PWA-fähig — Installierbar auf Mobile via "Add to Homescreen"
Frontend (React + Vite)
│
├── /api/search → eBay Browse API + Etsy Open API
├── /api/prices → eBay Marktpreise
├── /api/import → CSV / JSON / Extension Import
│
Backend (Express / Node.js)
Chrome Extension → Kleinanzeigen / Vinted / FB Marketplace
└── Liest DOM → sendet an /api/import
# 1. Dependencies installieren
npm install
# 2. API Keys konfigurieren
cp .env.example .env
# → .env bearbeiten und Keys eintragen
# 3. Starten (Frontend + Backend parallel)
npm run devDie App öffnet sich auf http://localhost:3000.
Ohne API Keys läuft sie im Demo-Modus mit generierten Daten.
- → https://developer.ebay.com → Account erstellen
- "Application Keys" → Production Keys generieren
EBAY_APP_IDundEBAY_CERT_IDin.enveintragen- Optional:
EBAY_MARKETPLACEändern (Default:EBAY_DE)
Verfügbare Märkte: EBAY_DE, EBAY_US, EBAY_GB, EBAY_FR, EBAY_IT, EBAY_ES, EBAY_AU, EBAY_AT, EBAY_CH, EBAY_NL, EBAY_BE
- → https://www.etsy.com/developers → App erstellen
- API Key kopieren
ETSY_API_KEYin.enveintragen
Für Kleinanzeigen, Vinted und FB Marketplace:
- Chrome öffnen →
chrome://extensions - Developer Mode aktivieren (oben rechts)
- "Load unpacked" →
extension/Ordner auswählen - Auf Kleinanzeigen/Vinted/FB gehen → ⚡ Button unten rechts klicken
- Im Extension-Popup: "Listings erfassen" → "An FlipFlow senden"
Listings per CSV importieren (Semikolon-getrennt):
title;price;platform;condition;url;location;seller;vb
iPhone 14 Pro 128GB;450;kleinanzeigen;wie-neu;https://...;Berlin;max_m;ja
LEGO Star Wars UCS;280;kleinanzeigen;neu;https://...;Hamburg;lego_fan;neinÜber das ☰ Menü im Header → "CSV Listings importieren".
- Landing Page → "Admin Login"
- Master-Passwort eingeben (Default:
flipflow2024, änderbar in.env) - Tokens erstellen → an User verteilen
- Tokens können deaktiviert, reaktiviert oder gelöscht werden
- Landing Page → "Token eingeben"
- Token im Format
FF-XXXX-XXXX-XXXXeingeben - Zugang zur App
| Script | Beschreibung |
|---|---|
npm run dev |
Frontend + Backend parallel starten |
npm run dev:frontend |
Nur Vite Dev Server |
npm run dev:server |
Nur Express Backend |
npm run build |
Production Build (Frontend) |
npm run server |
Nur Backend starten |
npm run start |
Production: Preview + Backend |
npx vercelBackend separat auf Railway, Render, Fly.io etc. deployen und VITE_API_URL setzen.
docker compose up -dLäuft auf Port 8080. Frontend + API in einem Container.
npx netlify deploy --prod --dir=distnpm run build
node server/index.jsServer liefert Frontend + API auf einem Port aus.
├── index.html HTML Entry mit SEO, OG Tags, PWA
├── package.json Dependencies & Scripts
├── vite.config.js Vite + API Proxy Config
├── .env.example API Keys Template
├── .gitignore
│
├── src/
│ ├── main.jsx App Router (Landing ↔ Admin ↔ App)
│ ├── App.jsx Haupt-App (alle Stages)
│ ├── Landing.jsx Landing Page + Token/Admin Modals
│ ├── TokenAdmin.jsx Token Management Panel
│ ├── ErrorBoundary.jsx Production Crash Handler
│ ├── api.js API Client (Frontend → Backend)
│ ├── auth.js Token Auth System
│ ├── db.js IndexedDB + localStorage Dual-Layer
│ └── usePersistedState.js React Hook für persistierten State
│
├── server/
│ ├── index.js Express Server + Static Serving
│ ├── routes/
│ │ ├── search.js Multi-Platform Search Endpoint
│ │ ├── prices.js Marktpreis-Abfrage
│ │ └── import.js CSV / JSON / Extension Import
│ └── services/
│ ├── ebay.js eBay Browse API + OAuth
│ ├── etsy.js Etsy Open API v3
│ └── scoring.js KI-Scoring Engine
│
├── extension/
│ ├── manifest.json Chrome Extension Manifest v3
│ ├── content.js DOM Parser (Kleinanzeigen/Vinted/FB)
│ ├── content.css Capture Button Styling
│ ├── popup.html Extension Popup UI
│ └── popup.js Popup Logic
│
├── public/
│ ├── favicon.svg App Icon
│ ├── manifest.json PWA Manifest
│ └── og-image.svg Social Share Bild
│
├── Dockerfile Multi-Stage Docker Build
├── docker-compose.yml One-Command Deploy
├── nginx.conf Nginx Config (wenn ohne Node)
├── vercel.json Vercel Deploy Config
└── netlify.toml Netlify Deploy Config
| Variable | Beschreibung | Default |
|---|---|---|
EBAY_APP_ID |
eBay Application ID | — |
EBAY_CERT_ID |
eBay Cert ID | — |
EBAY_MARKETPLACE |
eBay Markt | EBAY_DE |
ETSY_API_KEY |
Etsy API Key | — |
PORT |
Server Port | 3001 |
NODE_ENV |
Environment | development |
MASTER_PASSWORD |
Admin Master-Passwort | flipflow2024 |
Proprietär. Alle Rechte vorbehalten.