1.4 KiB
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
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
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
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.