SymptothermApp ist eine Webanwendung zur Unterstützung von Frauen bei der Überwachung ihrer Fruchtbarkeit mittels der symptothermalen Methode (NFP). Die Anwendung besteht aus einem Frontend und einem Backend, die beide in einem Docker-Container ausgeführt werden können.
- Funktionen
- Technologien
- Projektstruktur
- Voraussetzungen
- Installation
- Verwendung
- Docker-Setup
- Entwicklung
- Lizenz
- Überwachung der Fruchtbarkeit mittels symptothermaler Methode
- Webbasierte Benutzeroberfläche für einfache Dateneingabe und -verwaltung
- Backend für sichere Datenverarbeitung und -speicherung
- Zyklusdiagramm mit Recharts
- Benutzerauthentifizierung und -verwaltung
- Benutzeroberfläche auf Deutsch
- Frontend: TypeScript, React, Redux Toolkit, Mantine, Recharts
- Backend: Java, Spring Boot
- Datenbank: PostgreSQL (Containerisiert)
- Containerisierung: Docker
- Build-Tool: Gradle
src-ui/: Frontend-Quellcodesrc/: Backend-Quellcodesrc/main/resources/db/: DatenbankdateienDockerfile: Docker-Konfigurationsrc/build.gradle: Gradle-Build-Konfiguration
- Docker (Version 20.10 oder höher)
- Optional: Docker Compose (Version 1.29 oder höher)
- Für die Entwicklung: Node.js, Java JDK 11+, Gradle
-
Repository klonen:
git clone https://github.com/lumiliaro/symptothermapp.git cd symptothermapp -
Docker-Image bauen und ausführen:
docker build -t symptothermapp . docker run -p 8080:8080 symptothermapp -
Zugriff auf die Anwendung:
- Frontend und Backend: http://localhost:8080
Nach dem Start des Containers kann auf die Anwendung über einen Webbrowser zugegriffen werden. Beginnen Sie mit der Überwachung Ihrer Fruchtbarkeit durch Eingabe Ihrer täglichen Messwerte und Beobachtungen.
Das Projekt verwendet Docker für eine einfache Bereitstellung und Ausführung. Die Dockerfile im Wurzelverzeichnis definiert den Build- und Ausführungsprozess.
Die Dockerfile verwendet einen Multi-Stage-Build-Prozess:
-
Build-Stage:
- Basis:
gradle:8.10.0-jdk21-alpine - Kopiert den Quellcode und baut die Anwendung mit Gradle
- Führt
gradle clean build -x test --no-daemonaus
- Basis:
-
Production-Stage:
- Basis:
eclipse-temurin:21-jre-alpine - Kopiert die gebaute JAR-Datei aus der Build-Stage
- Setzt das Spring-Profil auf
prod - Erstellt einen nicht-Root-Benutzer für verbesserte Sicherheit
- Basis:
- Verwendung eines nicht-Root-Benutzers (
appuser) für die Ausführung der Anwendung - Nutzung des Alpine-Linux-Basisimages für eine minimale Angriffsfläche
Der Container exponiert Port 8080 für den Zugriff auf die Anwendung.
SPRING_PROFILES_ACTIVE=prod: Setzt das Spring-Profil auf Produktion
-
Image bauen:
docker build -t symptothermapp . -
Container starten:
docker run -p 8080:8080 symptothermapp
Für die lokale Entwicklung:
-
Datenbank (PostgreSQL) starten:
cd ./src && docker compose up -d
-
Backend starten:
./gradlew bootRun --args='--spring.profiles.active=dev' -
Frontend starten:
cd src-ui npm install npm run dev
Dieses Projekt ist unter der MIT-Lizenz lizenziert.