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
Description
No description provided
Readme 183 KiB
Languages
TypeScript 51.4%
Java 42.7%
CSS 5.6%
Dockerfile 0.2%