- Add .gitignore to exclude node_modules, dist, logs, and system files - Add comprehensive project documentation including README, deployment guide, and development setup - Add .kiro project specifications for amazon-product-bar-extension, appwrite-cloud-storage, appwrite-userid-repair, blacklist-feature, and enhanced-item-management - Add .kiro steering documents for product, structure, styling, and tech guidelines - Add VSCode settings configuration for consistent development environment - Add manifest.json and babel/vite configuration for extension build setup - Add complete source code implementation including AppWrite integration, storage managers, UI components, and services - Add comprehensive test suite with Jest configuration and 30+ test files covering all major modules - Add test HTML files for integration testing and validation - Add coverage reports and build validation scripts - Add AppWrite setup and repair documentation for database schema management - Add migration guides and responsive accessibility implementation documentation - Establish foundation for Amazon product bar extension with full feature set including blacklist management, enhanced item workflows, and real-time synchronization
9.5 KiB
Amazon Product Bar Extension
Eine Chrome Extension mit React, StaggeredMenu und AppWrite Cloud Storage, die eine Bar unter Produktbildern auf Amazon-Suchergebnisseiten hinzufügt.
Features
- 🎨 Animiertes StaggeredMenu mit GSAP
- ⚛️ React-basierte Architektur
- 🔥 Product Bar unter jedem Produktbild
- ☁️ AppWrite Cloud Storage - Synchronisation über alle Geräte
- 🔐 Benutzer-Authentifizierung - Sichere Datenspeicherung
- 🤖 AI-Integration - Mistral AI für Titel-Generierung
- 📱 Responsive Design mit Accessibility-Features
- 🌐 Unterstützt alle Amazon-Domains
- 🔄 Offline-Funktionalität - Arbeitet auch ohne Internet
- 📊 Daten-Migration - Automatische Übertragung von localStorage
Installation
Voraussetzungen
- AppWrite Account: Erstelle einen Account bei AppWrite
- Mistral AI API Key (optional): Für AI-Titel-Generierung von Mistral AI
AppWrite Setup
-
Projekt erstellen:
- Gehe zu deinem AppWrite Dashboard
- Erstelle ein neues Projekt
- Notiere dir die Project ID
-
Datenbank konfigurieren:
- Erstelle eine neue Datenbank mit ID:
amazon-extension-db - Erstelle folgende Collections:
amazon-ext-enhanced-items(Enhanced Items)amazon-ext-saved-products(Basic Products)amazon_ext_blacklist(Blacklisted Brands)amazon-ext-enhanced-settings(User Settings)amazon-ext-migration-status(Migration Status)
- Erstelle eine neue Datenbank mit ID:
-
Benutzer-Authentifizierung:
- Aktiviere Email/Password Authentication
- Konfiguriere Benutzerregistrierung (falls gewünscht)
Für Entwicklung
- Dependencies installieren:
npm install
-
AppWrite Konfiguration anpassen:
- Öffne
src/AppWriteConfig.js - Trage deine AppWrite-Daten ein:
export const APPWRITE_CONFIG = { endpoint: 'https://dein-appwrite-server.com/v1', projectId: 'deine-project-id', databaseId: 'amazon-extension-db' }; - Öffne
-
Build erstellen:
npm run build
- Extension in Chrome laden:
- Öffne
chrome://extensions/ - Aktiviere "Entwicklermodus" (oben rechts)
- Klicke auf "Entpackte Erweiterung laden"
- Wähle diesen Ordner aus
- Öffne
Für Entwicklung mit Auto-Rebuild
npm run dev
Dies startet Vite im Watch-Modus. Nach Änderungen musst du die Extension in Chrome neu laden.
Erste Schritte
1. Anmeldung
- Öffne eine Amazon-Suchergebnisseite
- Klicke auf das StaggeredMenu (oben rechts)
- Melde dich mit deinen AppWrite-Zugangsdaten an
- Bei der ersten Anmeldung werden deine lokalen Daten automatisch migriert
2. API-Konfiguration (Optional)
- Gehe zu "Settings" im Menu
- Trage deinen Mistral AI API Key ein
- Teste die Verbindung
- Speichere die Einstellungen
3. Enhanced Items verwenden
- Klicke auf "Enhanced Items" im Menu
- Füge Produkte über URL hinzu
- Nutze AI-generierte Titel-Vorschläge
- Deine Daten werden automatisch synchronisiert
Projektstruktur
├── src/
│ ├── content.jsx # Haupt-Content-Script
│ ├── StaggeredMenu.jsx # React StaggeredMenu Komponente
│ ├── StaggeredMenu.css # Menu Styles
│ ├── AppWriteConfig.js # AppWrite Konfiguration
│ ├── AppWriteManager.js # AppWrite Integration
│ ├── AuthService.js # Authentifizierung
│ ├── MigrationService.js # Daten-Migration
│ ├── OfflineService.js # Offline-Funktionalität
│ ├── LoginUI.jsx # Login-Interface
│ ├── MigrationUI.jsx # Migration-Interface
│ └── Enhanced*/ # Enhanced Item Management
├── dist/ # Build-Output (generiert)
├── manifest.json # Chrome Extension Manifest
├── package.json # NPM Dependencies
└── vite.config.js # Vite Build-Konfiguration
Verwendung
Grundfunktionen
- Gehe zu einer Amazon-Suchergebnisseite (z.B. amazon.de/s?k=laptop)
- Das StaggeredMenu erscheint oben rechts
- Unter jedem Produktbild siehst du die Product Bar
- Klicke auf "Menu" um das animierte Menü zu öffnen
Cloud-Synchronisation
- Deine Daten werden automatisch in AppWrite gespeichert
- Änderungen werden sofort auf alle deine Geräte synchronisiert
- Bei Offline-Nutzung werden Änderungen lokal gespeichert und später synchronisiert
AI-Features
- Automatische Titel-Verbesserung mit Mistral AI
- Drei Titel-Vorschläge pro Produkt
- Intelligente Produktdaten-Extraktion
Technologie-Stack
- React 18 - UI Framework
- GSAP - Animationen
- Vite - Build Tool
- AppWrite - Cloud Backend & Authentifizierung
- Mistral AI - KI-Integration
- Chrome Extension Manifest V3
Konfiguration
AppWrite Verbindung
Die AppWrite-Konfiguration findest du in src/AppWriteConfig.js:
export const APPWRITE_CONFIG = {
endpoint: 'https://appwrite.webklar.com/v1',
projectId: '6963df38003b96dab5aa',
databaseId: 'amazon-extension-db',
collections: {
enhancedItems: 'amazon-ext-enhanced-items',
savedProducts: 'amazon-ext-saved-products',
blacklist: 'amazon_ext_blacklist',
settings: 'amazon-ext-enhanced-settings',
migrationStatus: 'amazon-ext-migration-status'
}
};
Fehlerbehandlung
Die Extension bietet umfassende Fehlerbehandlung:
- AppWrite Ausfall: Automatischer Fallback zu localStorage
- Netzwerkfehler: Retry-Logik mit exponential backoff
- Authentifizierung: Automatische Erneuerung abgelaufener Sessions
- Deutsche Fehlermeldungen: Benutzerfreundliche Meldungen
Debugging
AppWrite-Verbindung testen
// In der Browser-Konsole
window.amazonExtEventBus.emit('appwrite:health-check');
Migration-Status prüfen
// Migration-Status anzeigen
window.amazonExtEventBus.emit('migration:status');
Offline-Queue anzeigen
// Offline-Operationen anzeigen
window.amazonExtEventBus.emit('offline:queue-status');
Troubleshooting
Troubleshooting
CORS-Probleme mit AppWrite
Problem: Fehlermeldung "Access to fetch blocked by CORS policy"
Ursache: Ihr AppWrite-Server ist nur für https://localhost konfiguriert, aber die Extension läuft auf Amazon-Domains.
Automatische Lösung: Die Extension erkennt CORS-Fehler automatisch und wechselt zu localStorage:
- ✅ Daten werden automatisch lokal gespeichert
- ✅ Synchronisation erfolgt später, wenn AppWrite verfügbar ist
- ✅ Keine Datenverluste durch CORS-Probleme
Manuelle Lösung:
- AppWrite-Konsole öffnen
- "Settings" → "Platforms" → "Web Platform" hinzufügen
- Hostname auf
*.amazon.*setzen (für alle Amazon-Domains)
AppWrite-Probleme
"Invalid query: Attribute not found in schema: userId" Fehler?
🚨 KRITISCH: Ihre Collections fehlt das userId-Attribut!
🔧 AUTOMATISCHE REPARATUR (Empfohlen):
- Öffne
test-appwrite-repair-tool.htmlin deinem Browser - Gib deine AppWrite-Konfiguration ein
- Klicke auf "Nur Analyse" für eine sichere Überprüfung
- Bei Problemen: Klicke auf "Reparatur starten" für automatische Behebung
- Folge den detaillierten Anweisungen im Tool
📖 Vollständige Anleitung: Siehe APPWRITE_REPAIR_TOOL_GUIDE_DE.md
Manuelle Lösung (falls automatische Reparatur fehlschlägt):
- AppWrite Console öffnen → Databases → amazon-extension-db
- Für JEDE Collection (5 Stück):
- Auf Collection-Name klicken
- "Attributes" Tab → "Create Attribute"
- Type: String, Key:
userId, Size: 255, Required: ✅
- Permissions setzen (Settings Tab):
- Create:
users - Read/Update/Delete:
user:$userId
- Create:
📖 Detaillierte manuelle Anleitung: Siehe APPWRITE_USERID_ATTRIBUTE_FIX.md
401 Unauthorized Fehler?
- Gehe zu AppWrite Console → Databases → amazon-extension-db
- Für jede Collection: Settings → Permissions setzen:
- Create:
users - Read/Update/Delete:
user:$userId
- Create:
- Siehe
APPWRITE_PERMISSIONS_FIX.mdfür detaillierte Anleitung
Verbindung fehlgeschlagen?
- Prüfe deine AppWrite-Konfiguration in
src/AppWriteConfig.js - Stelle sicher, dass dein AppWrite-Server erreichbar ist
- Überprüfe die Project ID und Endpoint-URL
- Kontrolliere die Collection-Namen
Authentifizierung schlägt fehl?
- Prüfe deine Login-Daten
- Stelle sicher, dass Email/Password Auth aktiviert ist
- Kontrolliere die AppWrite-Berechtigungen
- Bei Problemen: Logout und erneut anmelden
Daten-Migration
Migration hängt?
- Öffne die Browser-Konsole für Details
- Prüfe deine Internetverbindung
- Stelle sicher, dass AppWrite erreichbar ist
- Bei Fehlern: Migration über Settings neu starten
Offline-Modus
Synchronisation funktioniert nicht?
- Prüfe die Netzwerkverbindung
- Kontrolliere den Offline-Queue-Status
- Warte auf automatische Synchronisation
- Bei Problemen: Extension neu laden
Allgemeine Probleme
Keine Balken sichtbar?
- Prüfe ob du auf einer Amazon-Suchergebnisseite bist
- Stelle sicher, dass
npm run builderfolgreich war - Reload die Extension in
chrome://extensions/ - Prüfe die Konsole auf Fehler
Menu erscheint nicht?
- Prüfe die Console auf Fehler
- Stelle sicher, dass alle Dependencies installiert sind
- Rebuild mit
npm run build - Kontrolliere die AppWrite-Verbindung
Support
Bei Problemen:
- Prüfe die Browser-Konsole auf Fehlermeldungen
- Teste die AppWrite-Verbindung
- Kontrolliere den Migration-Status
- Prüfe die Offline-Queue bei Synchronisationsproblemen