# Development Setup ## Voraussetzungen Docker/Compose, Git sowie für Android Node.js/npm, JDK 17, Android SDK und ein Android-Gerät oder Emulator. Das Android-Projekt verwendet Capacitor 6.2.1, Android Gradle Plugin 8.2.1 und Gradle 8.2.1. ## Web lokal ```bash cp .env.example .env COOKIE_SECURE=false docker compose up --build docker compose logs -f web docker compose down ``` Die Web-App läuft auf Port 8080, PostgreSQL im Compose-Netzwerk. Die Datenbank wird beim ersten Start aus `db/init/01_initial.sql` initialisiert. Für Tests darf eine separate lokale Testdatenbank bzw. ein isoliertes Schema verwendet werden. ## Tests ```bash docker compose run --rm --no-deps -e METALCIRCLE_TEST_DATABASE=1 \ -v "$PWD/app:/app" -v "$PWD/db/migrations:/test-migrations:ro" -v "$PWD/db/init:/test-init:ro" \ web python -m unittest discover -s tests -v ``` Nur gegen die lokale Testdatenbank ausführen: Die Tests erstellen und entfernen isolierte Schemas. Firebase wird simuliert, Service-Account-Dateien sind dafür nicht nötig. Frontend-Prüfung: `node --test app/tests/native_push.test.cjs`. ## Android lokal ```bash cd android npm install npm run sync npm run build ``` Für lokale HTTP-Tests wird die URL ausschließlich über die dokumentierten lokalen Capacitor-Variablen gesetzt; Release-Builds benötigen HTTPS. Android Studio kann das Verzeichnis `android/android` öffnen. Die Firebase-Datei bleibt lokal und ignoriert.