Dieses Projekt zielt darauf ab, eine generische Anwendung für wissenschaftliche Studien zu entwickeln. Diese App wird in Zusammenarbeit mit dem Zentralinstitut für Seelische Gesundheit (ZI) in Mannheim erstellt und soll dazu dienen, das Management von Studien sowie die Erfassung und Verwaltung von Teilnehmerdaten zu ermöglichen.
Die App wird mit folgenden Technologien entwickelt:
- Frontend: React (PWA)
- Backend: Nest.js
- Datenbank: MySQL
Die App besteht aus zwei Teilen:
-
Admin-App: Dient der Administration und Verwaltung der Studien. Hier können neue Studien erstellt, bestehende Studien bearbeitet und Teilnehmer verwaltet werden.
-
Studien-App: Hier können die Teilnehmer ihre Daten erfassen. Die Teilnehmer können sich für Studien anmelden, ihre persönlichen Daten eingeben und ihre Studiendaten einreichen.
Builden der Anwendung
docker-compose -f "prod-docker-compose.yaml" build --no-cacheStarten der Anwendung
docker-compose -f "prod-docker-compose.yaml" up -dAusführen der Datenbank Migrations
docker-compose -f "prod-docker-compose.yaml" exec admin-backend npm run db:migration:runStarten des lokalen Datenbankservers
docker-compose -f "dev-docker-compose.yaml" up -dNavigiere in den Order backend
cd backendInstalliere alle npm Pakete
npm installStarte den lokalen Backendserver
npm run start:admin:devDie App benötigt folgende Umgebungsvariablen:
| Variable | Bedeutung |
|---|---|
| ACTIVATION_PASSWORD | Administrator Passwort |
| JWT_SECRET | JWT Secret für das signieren von Tokens |
| ORIGIN | URI des Admin Frontends |
| STUDY_FRONTED_URI | URI des Study Frontends |
| PORT | Port der Admin App |
Navigiere in den Order backend
cd backendInstalliere alle npm Pakete
npm installStarte den lokalen Backendserver
npm run start:study:devDie App benötigt folgende Umgebungsvariablen:
| Variable | Bedeutung |
|---|---|
| ORIGIN | URI des Study-Frontends |
| JWT_SECRET | Secrect zum Erstellen der JWT |
| VAPID_PUBLIC_KEY | gültiger public VAPID KEY https://vapidkeys.com |
| VAPID_PRIVATE_KEY | gültiger und passender private VAPID KEY https://vapidkeys.com |
Um das Admin und Study Backend mit der Datenbank zu verbinden, benötigt beide Apps folgende Umgebungsvariablen:
| Variable | Bedeutung |
|---|---|
| DB_HOST | Host der Datenbank |
| DB_PORT | Port des Datenbankservers |
| DB_USER | Datenbank Benutzer |
| DB_PASSWORD | Datenbank Passwort |
| DB_NAME | Name der Datenbank |
Navigiere in den Order frontend/admin-app
cd frontend/admin-appDie App benötigt folgende Umgebungsvariablen:
| Variable | Bedeutung |
|---|---|
| VITE_API_URI | URI des Admin-Backends |
Installiere alle npm Pakete
npm installStarte die Anwendung
npm startNavigiere in den Order frontend/study-app
cd frontend/study-appDie App benötigt folgende Umgebungsvariablen:
| Variable | Bedeutung |
|---|---|
| VITE_API_URI | URI des Study-Backends |
| VITE_VAPID_PUBLIC_KEY | gültigen public VAPID KEY https://vapidkeys.com |
Installiere alle npm Pakete
npm installStarte die Anwendung
npm startIm Frontend wird der Code Generator "plop.js" eingesetzt.
Navigiere in den Ordner backend
cd backendTeste die Endpoints des Admin-Backends
npm run test:adminTeste die Endpoints des Study-Backends
npm run test:study:integrationStarten der Anwendung
docker-compose -f "prod-docker-compose.yaml" up -dNavigiere in den Ordner test/cypress
cd tests/cypressTeste die Admin App
npm run test:admin-appTeste die Studien App
npm run test:study-appNavigiere in den Ordner test/puppeteer
cd tests/puppeteerTeste die Studien App
npm run test:study-app