# Extension & Server Projekt Dieses Projekt besteht aus drei Hauptkomponenten: ## Extension - **Zweck**: Browser-Extension mit JWT-basierter Authentifizierung - **Speicherort**: `/Extension` - Empfängt JWT von der Web-App und kommuniziert mit dem Backend ## Server (React Web App) - **Zweck**: Login-Interface mit Appwrite-Authentifizierung - **Speicherort**: `/Server` - Basiert auf React mit Appwrite-Integration - Sendet JWT an die Extension nach erfolgreichem Login ## Backend - **Zweck**: Serverseitige JWT-Validierung und API-Endpoints - **Speicherort**: `/Server/backend` - Node/Express Server mit Appwrite-Integration - Validiert JWTs und führt privilegierte Aktionen aus ## Getting Started ### 1. Backend starten ```powershell cd Server\backend npm install npm run dev ``` Das Backend läuft auf `http://localhost:3000` **Wichtig**: Vor dem Start `APPWRITE_API_KEY` in `Server/backend/.env` eintragen! ### 2. React Web App starten ```powershell cd Server npm install npm run dev ``` Die Web-App läuft auf `http://localhost:5173` (oder einem anderen Port, den Vite anzeigt) **Wichtig**: Stelle sicher, dass `Server/.env` die korrekten Appwrite-Konfigurationswerte enthält: - `VITE_APPWRITE_ENDPOINT` - `VITE_APPWRITE_PROJECT_ID` ### 3. Extension laden 1. Öffne Chrome/Edge und gehe zu `chrome://extensions/` (oder `edge://extensions/`) 2. Aktiviere **"Entwicklermodus"** (oben rechts) 3. Klicke auf **"Entpackte Erweiterung laden"** 4. Wähle den `Extension/` Ordner aus 5. Die Extension sollte jetzt geladen sein ### 4. Testen 1. Öffne die Web-App im Browser (`http://localhost:5173`) 2. Du siehst den Login-Sperrbildschirm 3. Logge dich mit deinen Appwrite-Credentials ein 4. Nach erfolgreichem Login verschwindet der Sperrbildschirm 5. Öffne die Extension (Klick auf das Extension-Icon) 6. Du solltest "Authed: true" sehen 7. Klicke auf "Test action" um die Backend-Verbindung zu testen ## Projektstruktur ``` eship/ ├── Extension/ # Browser-Extension │ ├── manifest.json │ ├── background.js │ ├── content-script.js │ ├── popup.html │ └── popup.js ├── Server/ # React Web App │ ├── src/ │ │ └── App.jsx # Login-Sperrbildschirm │ ├── .env # Vite Env-Variablen │ └── backend/ # Node/Express Backend │ ├── server.js │ ├── .env # Backend Env-Variablen │ └── package.json └── setup/ # Setup & Konfiguration ``` ## Konfiguration ### Backend `.env` (Server/backend/.env) ``` APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1 APPWRITE_PROJECT_ID=696b82bb0036d2e547ad APPWRITE_API_KEY= PORT=3000 ``` ### React App `.env` (Server/.env) ``` VITE_APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1 VITE_APPWRITE_PROJECT_ID=696b82bb0036d2e547ad ``` ### Extension Backend URL (Extension/background.js) ```javascript const BACKEND_URL = "http://localhost:3000"; // Anpassen falls nötig ```