Files
muh/README.md
Sven Carstensen f9b83a166d feat: isolate catalog data per primary user (accountId)
- Add accountId to Farmer, MedicationCatalogItem, PathogenCatalogItem, AntibioticCatalogItem
- Create new /api/catalog endpoints for CUSTOMER role only
- Remove DemoDataInitializer (no more demo data generation)
- Add DefaultUserInitializer for admin user creation only
- Update repositories with accountId-based query methods
- Update CatalogService with accountId isolation and role-based access
- Update SecurityConfig: /api/catalog/** for CUSTOMER, /api/admin/** for ADMIN
- Update frontend AdministrationPage to use new /api/catalog endpoints
- Migrate existing data without accountId to first admin user
2026-03-18 20:40:10 +01:00

2.8 KiB

MUH App

Spring Boot + React Anwendung fuer die Bearbeitung von Milchproben, Antibiogrammen, Therapieempfehlungen sowie Verwaltungs- und Portalaufgaben.

Projektstruktur

  • backend/: Spring Boot REST API mit MongoDB-Anbindung
  • frontend/: React/Vite Frontend fuer Desktop und Tablet

Konfiguration

Die Anwendung liest Konfigurationswerte aus einer .env im Projektverzeichnis oder aus Umgebungsvariablen.

Die lokale .env ist in .gitignore eingetragen und sollte nicht mit echten Zugangsdaten committed werden.

MongoDB:

  • MUH_MONGODB_URL
  • MUH_MONGODB_USERNAME
  • MUH_MONGODB_PASSWORD

Optional fuer echten Mailversand im Portal:

  • MUH_MAIL_ENABLED=true
  • MUH_MAIL_FROM=...
  • MUH_MAIL_HOST=...
  • MUH_MAIL_PORT=587
  • MUH_MAIL_USERNAME=...
  • MUH_MAIL_PASSWORD=...
  • MUH_MAIL_PROTOCOL=smtp
  • MUH_MAIL_AUTH=true
  • MUH_MAIL_STARTTLS=true

Ohne SMTP-Konfiguration markiert das Portal Berichte als versendet, verschickt aber keine E-Mails.

Backend starten

cd backend
mvn spring-boot:run

Backend-URL:

  • http://localhost:8090

Frontend starten

cd frontend
npm install
npm run dev

Frontend-URL:

  • http://localhost:5173

Optional kann die API-URL im Frontend ueber VITE_API_URL gesetzt werden.

Docker Deployment

Produktions-Image bauen:

docker build -t muh-app .

Container starten:

docker run --rm --env-file .env -p 8090:8090 muh-app

Die Anwendung ist danach unter http://localhost:8090 erreichbar.

Hinweis:

  • Das Dockerfile baut das React-Frontend und das Spring-Boot-Backend in einem Image.
  • Das Frontend wird im Container direkt ueber Spring Boot ausgeliefert.
  • API-Aufrufe laufen in Produktion relativ ueber /api.

Anmeldung

Es gibt jetzt zwei Varianten:

  • Login ueber E-Mail oder Benutzername plus Passwort
  • Registrierung eines neuen Kundenkontos ueber Firmenname, Strasse, Hausnummer, PLZ, Ort, E-Mail und Passwort

Vordefinierter Admin:

  • Benutzername: admin
  • E-Mail: admin@muh.local
  • Passwort: Admin123!

Kundenregistrierung:

  • Die Registrierungsdaten werden dauerhaft in MongoDB in der Collection users gespeichert.
  • Gespeichert werden Firmenname, Adresse, E-Mail, Passwort-Hash, generierter Loginname und Rolle CUSTOMER.
  • Nach erfolgreicher Registrierung erfolgt sofort die Anmeldung in der Anwendung.

Geprueft

  • cd backend && mvn test
  • cd frontend && npm run build

Docker

docker build -t muh:0.9.1 . docker buildx build --platform linux/amd64 -t gitea.appcreation.de/sven/muh:0.8.0 --push .

docker run -d --name muh --network br0 --ip 192.168.180.26 --restart unless-stopped -e MUH_MONGODB_URL=mongodb://192.168.180.25:27017/muh -e MUH_TOKEN_SECRET=local-dev-muh-token-secret-2026-03-13 -e MUH_TOKEN_VALIDITY_HOURS=12 -e MUH_ALLOWED_ORIGINS=https://muh.appcreation.de gitea.appcreation.de/sven/muh:0.8.0