# 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 ```bash cd backend mvn spring-boot:run ``` Backend-URL: - `http://localhost:8090` ## Frontend starten ```bash 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: ```bash docker build -t muh-app . ``` Container starten: ```bash 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`