Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
FROM node:16.13-alpine3.14 as Dev
# dev
FROM node:18-slim as dev

# Create dir for app and node_modules and give perm to user node
RUN mkdir -p /backend/node_modules && chown -R node:node /backend
WORKDIR /backend
RUN mkdir -p /api/node_modules && chown -R node:node /api
WORKDIR /api

COPY package*.json ./

Expand Down
77 changes: 40 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,18 @@ npm install --legacy-peer-deps

### Während der Entwicklung

Als Datenbank wird mongodb benutzt, welches vorher installiert werden muss:
[https://docs.mongodb.com/manual/installation/]
Datenbank starten mit
Als Datenbank wird mongodb benutzt. Die Entwicklung geschieht aber autark in Docker-Containern. Hierzu gibt es ein `Dockerfile` und eine `docker-compose.yml`, welche die erforderliche Konfiguration haben.

Zum Starten

```
mongod
docker compose -p [projekt_name] up -d
```

Server starten
Zum Stoppen der Container

```
npm run dev
docker compose down
```

In Prod:
Expand All @@ -38,7 +38,7 @@ npm run start
```

Im Browser aufrufen:
http://localhost:3000
http://localhost:4000

### Beschreibung

Expand All @@ -52,15 +52,18 @@ Testen mit https://install.advancedrestclient.com/install

### User Routes

| Route | HTTP Methode | Beschreibung |
| -------------------- | :----------: | ---------------------------: |
| `/api/users` | `POST` | Erstelle Benutzer |
| `/api/users` | `GET` | Liste aller Benutzer |
| `/api/users/:userId` | `GET` | Rufe bestimmten Benutzer auf |
| `/api/users/:userId` | `PUT` | aktualisiere Benutzer |
| `/api/users/:userId` | `DELETE` | Lösche Benutzer |
| `/auth/signin` | `POST` | Anmelden |
| `/auth/signout` | `GET` | Abmelden |
| Route | HTTP Methode | Beschreibung |
| ---------------------------- | :----------: | --------------------------------: |
| `/api/users` | `POST` | Erstelle Benutzer |
| `/api/users` | `GET` | Liste aller Benutzer |
| `/api/users/:userId` | `GET` | Rufe bestimmten Benutzer auf |
| `/api/users/:userId` | `PUT` | aktualisiere Benutzer |
| `/api/users/:userId` | `DELETE` | Lösche Benutzer |
| `/auth/signin` | `POST` | Anmelden |
| `/auth/signout` | `GET` | Abmelden |
| `/auth/completeRegistration` | `POST` | Aktivieren |
| `/auth/requestPasswordReset` | `POST` | Anfrage Passwort zurücksetzen |
| `/auth/resetPassword` | `POST` | Passwort zuruecksetzen bestätigen |

### Benutzer Felder in der Datenbank

Expand All @@ -75,6 +78,27 @@ Testen mit https://install.advancedrestclient.com/install
| borrowedBooks | borrowedBooks | Ausgeliehende Bücher |
| bookmarkedBooks | bookmarkedBooks | gemerkte Bücher |

### requestPasswordReset route

| Feld | Typ | Beschreibung |
| ---- | :----: | -------------: |
| mail | string | Mail des Users |

### resetPassword route

| Feld | Typ | Beschreibung |
| -------- | :-------------: | ---------------------: |
| userId | mongoose.userid | ID des Users |
| token | string | Token zum zurücksetzen |
| password | string | Neues Passwort |

### registration activate route

| Feld | Typ | Beschreibung |
| ------ | :-------------: | ---------------------: |
| userId | mongoose.userid | ID des Users |
| token | string | Token zum zurücksetzen |

### Bücher API

| Route | HTTP Methode | Beschreibung |
Expand Down Expand Up @@ -168,24 +192,3 @@ Testen mit https://install.advancedrestclient.com/install

Bei ungelesen Nachrichten ist der Zeitstempel updatedAt neuer als readAt und der Sender der Nachricht ist nicht der gerade eingeloggte Benutzer
updatedAt > readAt und Sender der letzten Nachricht != Gerade eingeloggter Benutzer

### requestPasswordReset route

| Feld | Typ | Beschreibung |
| ---- | :----: | -------------: |
| mail | string | Mail des Users |

### resetPassword route

| Feld | Typ | Beschreibung |
| -------- | :-------------: | ---------------------: |
| userId | mongoose.userid | ID des Users |
| token | string | Token zum zurücksetzen |
| password | string | Neues Passwort |

### registration activate route

| Feld | Typ | Beschreibung |
| ------ | :-------------: | ---------------------: |
| userId | mongoose.userid | ID des Users |
| token | string | Token zum zurücksetzen |
31 changes: 31 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: "3.9"

services:
db:
image: mongo:4.4-focal
volumes:
- database:/data/db
ports:
- "27017:27017"
networks:
- kodebi-network
api:
env_file:
- ./.env
build:
context: ./
target: "dev"
depends_on:
- db
volumes:
- ./:/root/api:cached
ports:
- "4000:4000"
networks:
- kodebi-network
networks:
kodebi-network:
driver: bridge
volumes:
database:
driver: local