108 lines
2.4 KiB
Markdown
108 lines
2.4 KiB
Markdown
# 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`
|