npm install
Falls es einen Fehler geben sollte:
npm install --legacy-peer-deps
Als Datenbank wird mongodb benutzt, welches vorher installiert werden muss: [https://docs.mongodb.com/manual/installation/] Datenbank starten mit
mongod
Server starten
npm run dev
In Prod:
npm run start
Im Browser aufrufen: http://localhost:3000
Kodebi backend mit create, update, delete (CRUD) und authentication-authorization (auth) Testen mit https://install.advancedrestclient.com/install
- Body-Content-Type: application/json
- Editor-view: Json visual Editor
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 |
Feld | Typ | Beschreibung |
---|---|---|
name | string | Notwendig |
string | Notwendig (einzigartig) | |
password | string | Notwendig Passwort wird verschlüsselt gespeichert |
createdAt | Date | Wann wurde der Benutzer erstellt? Automatisch generiert |
updatedAt | Date | Wann wurde der Benutzer aktualisiert? Automatisch generiert |
group | string | Optional |
borrowedBooks | borrowedBooks | Ausgeliehende Bücher |
bookmarkedBooks | bookmarkedBooks | gemerkte Bücher |
Route | HTTP Methode | Beschreibung |
---|---|---|
/api/books/ |
GET |
Liste aller Bücher |
/api/book/ |
POST |
Erstelle Buch |
/api/book/:bookId |
GET |
Finde ein bestimmtes Buch |
/api/book/:bookId |
PUT |
Verändere Buch |
/api/book/image/:bookId |
PUT |
Verändere nur das Bild von Buch |
/api/book/:bookId |
DELETE |
Lösche Buch |
/api/book/user/:userId |
GET |
Erhalte alle Bücher eines bestimmten Users |
/api/borrow/:bookId/user/:userId |
PUT |
Verleihe eigenes Buch mit bookId an userId |
/api/borrow |
GET |
Eigene verliehene Bücher |
/api/return/:bookId |
PUT |
Buch zurück erhalten |
/api/bookmark/:bookId |
PUT |
Trage Buch in Merkliste ein |
/api/bookmark |
GET |
Eigene gemerkte Bücher |
Feld | Typ | Beschreibung |
---|---|---|
name | string | Notwendig |
author | string | Notwendig |
category | string | Notwendig |
language | string | Notwendig |
condition | string | Notwendig |
description | string | Notwendig |
status | string | optional |
ownerId | User | automatisch generiert |
ownerName | string | automatisch generiert |
createdAt | Datum | automatisch generiert |
updatedAt | Datum | automatisch generiert |
group | string | Optional |
timesBorrowed | int | Wie oft wurde das Buch geliehen? |
Feld | Typ | Beschreibung |
---|---|---|
name | string | Notwendig |
author | string | Notwendig |
ownerId | User | automatisch generiert |
ownerName | string | automatisch generiert |
borrowerId | User | Notwendig |
borrowerName | string | Notwendig |
book | book | Notwendig |
createdAt | Datum | automatisch generiert |
updatedAt | Datum | automatisch generiert |
Feld | Typ | Beschreibung |
---|---|---|
bookmarkedBookList | array of BookList | Notwendig |
borrowedBookList | array of BookList | Notwendig |
Route | HTTP Methode | Beschreibung |
---|---|---|
/api/messages |
POST |
Erstelle Nachricht/Konversation |
/api/messages/:convId |
GET |
Erhalte Konversation |
/api/messages/:convId |
POST |
Schicke Nachricht/Update Konversation |
/api/messages/:convId |
DELETE |
Lösche Konversation |
/api/messages/user/:userId |
GET |
Erhalte alle Nachrichten vom User |
Feld | Typ | Beschreibung |
---|---|---|
senderId | mongoose.userid | automatisch generiert |
senderName | string | automatisch generiert |
recieverId | mongoose.userid | Notwendig |
recieverName | string | automatisch generiert |
message | string | Notwendig |
createdAt | Datum | Wird automatisch generiert |
updatedAt | Datum | Wird automatisch generiert |
group | string | Optional |
Feld | Typ | Beschreibung |
---|---|---|
recipients | array of userid | Wird automatisch gesetzt (nicht veränderbar) |
messages | arrray of MessageID | Neue Nachrichten werden automatisch eingefügt |
createdAt | Datum | Wird automatisch generiert |
updatedAt | Datum | Wird automatisch generiert |
readAt | Datum | Zeigt an wann die Konversation das letzte mal aufgerufen wurde |
topic | string | Optional |
group | string | Optional |
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
Feld | Typ | Beschreibung |
---|---|---|
string | Mail des Users |
Feld | Typ | Beschreibung |
---|---|---|
userId | mongoose.userid | ID des Users |
token | string | Token zum zurücksetzen |
password | string | Neues Passwort |
Feld | Typ | Beschreibung |
---|---|---|
userId | mongoose.userid | ID des Users |
token | string | Token zum zurücksetzen |