Files
pingu-concerts/docs/wiki/Development-Setup.md
T

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.