mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 04:39:35 +01:00
Scanner-App Tauri v2 Android App mit Login, Barcode-Scanner, Consume/Move/Book-Flows und Aufgabenliste. TasksPage lädt echte RELEASED/IN_PROGRESS Produktionsaufträge via API, Consume-Flow nutzt den konkreten Auftrag für korrekte Rezept-Skalierung statt blind den ersten IN_PROGRESS-Auftrag zu nehmen. Backend: FindStockByBatchId Use Case + REST-Endpoint für Stock-Lookup per Chargennummer.
117 lines
4.1 KiB
Makefile
117 lines
4.1 KiB
Makefile
# Effigenix ERP – Development Commands
|
||
|
||
# Default: alle Recipes auflisten
|
||
default:
|
||
@just --list
|
||
|
||
# ─── Dev Modi ─────────────────────────────────────────────
|
||
|
||
# Backend starten (Spring Boot)
|
||
dev-backend:
|
||
cd backend && SENTRY_DSN=$(grep '^SENTRY_DSN=' ../.env 2>/dev/null | cut -d= -f2-) mvn spring-boot:run
|
||
|
||
# CLI/TUI starten
|
||
dev-cli:
|
||
cd frontend/apps/cli && node --env-file=../../../.env --import tsx src/index.tsx
|
||
|
||
# Web-UI starten (Vite :3000)
|
||
dev-web:
|
||
cd frontend && pnpm run --filter @effigenix/web dev
|
||
|
||
# Scanner-App starten (Tauri + Vite :1420)
|
||
dev-scanner:
|
||
cd frontend/apps/scanner && pnpm tauri dev
|
||
|
||
# UI-Library im Watch-Modus bauen
|
||
dev-ui:
|
||
cd frontend && pnpm run --filter @effigenix/ui dev
|
||
|
||
# ─── Android ─────────────────────────────────────────────
|
||
|
||
# Android-Emulator starten (Pixel 3 XL, API 34)
|
||
android-emulator:
|
||
emulator -avd effigenix -gpu swiftshader_indirect
|
||
|
||
# Scanner auf Android-Emulator starten (Emulator muss laufen)
|
||
dev-scanner-android:
|
||
cd frontend/apps/scanner && pnpm tauri android dev
|
||
|
||
# ─── Build ────────────────────────────────────────────────
|
||
|
||
# Frontend komplett bauen
|
||
build-frontend:
|
||
cd frontend && pnpm build
|
||
|
||
# Backend bauen
|
||
build-backend:
|
||
cd backend && mvn package -DskipTests
|
||
|
||
# ─── Checks ──────────────────────────────────────────────
|
||
|
||
# Frontend Typecheck
|
||
typecheck:
|
||
cd frontend && pnpm typecheck
|
||
|
||
# Frontend Tests
|
||
test-frontend:
|
||
cd frontend && pnpm test
|
||
|
||
# Backend Tests
|
||
test-backend:
|
||
cd backend && mvn test
|
||
|
||
# ─── Code Generation ─────────────────────────────────────
|
||
|
||
# OpenAPI Spec + TypeScript Types generieren
|
||
generate-openapi:
|
||
./scripts/generate-openapi.sh
|
||
|
||
# ─── Datenbank ────────────────────────────────────────────
|
||
|
||
# Testdaten einspielen
|
||
seed-testdata:
|
||
PGPASSWORD=effigenix nix shell nixpkgs#postgresql --command psql -f backend/src/main/resources/db/changelog/changes/099-seed-testdata.sql -h localhost -p 5432 -U effigenix -d effigenix
|
||
|
||
# ─── Fuzz Testing ─────────────────────────────────────────
|
||
|
||
# Alle Fuzz-Tests
|
||
fuzz:
|
||
cd backend && mvn test -Pfuzz
|
||
|
||
# Fuzz-Regressionstests
|
||
fuzz-regression:
|
||
cd backend && mvn test -Pfuzz-regression
|
||
|
||
# Einzelnen Fuzz-Test ausführen (z.B. just fuzz-single BatchFuzzTest)
|
||
fuzz-single TEST:
|
||
cd backend && mvn test -Pfuzz -Dtest={{ TEST }}
|
||
|
||
# ─── Load Testing ────────────────────────────────────────
|
||
|
||
# Gatling Load Test ausführen (startet Backend + DB via Testcontainers)
|
||
loadtest:
|
||
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
# Podman-Socket für Testcontainers bereitstellen (falls kein Docker)
|
||
if [ -z "${DOCKER_HOST:-}" ] && [ ! -S /var/run/docker.sock ]; then
|
||
PODMAN_SOCK="/run/user/$(id -u)/podman/podman.sock"
|
||
if [ -S "$PODMAN_SOCK" ]; then
|
||
export DOCKER_HOST="unix://$PODMAN_SOCK"
|
||
export TESTCONTAINERS_RYUK_DISABLED=true
|
||
fi
|
||
fi
|
||
cd loadtest && mvn gatling:test
|
||
|
||
# ─── Services ─────────────────────────────────────────────
|
||
|
||
# Bugsink starten (Error Tracking)
|
||
bugsink:
|
||
@. ./.env 2>/dev/null || true; \
|
||
docker start bugsink 2>/dev/null || \
|
||
docker run \
|
||
--name bugsink \
|
||
-p 8000:8000 \
|
||
-e SECRET_KEY=${BUGSINK_SECRET_KEY:?BUGSINK_SECRET_KEY muss gesetzt sein} \
|
||
-e CREATE_SUPERUSER=admin:admin \
|
||
bugsink/bugsink:latest
|
||
@echo "Bugsink: http://localhost:8000 (admin/admin)"
|