From 148e44a705c5de61e20508f1833f67edf919d597 Mon Sep 17 00:00:00 2001 From: Kai Ritthaler Date: Thu, 15 May 2025 18:02:52 +0200 Subject: [PATCH] updated README --- code/backend/README.md | 88 +++++++++++++++++++++++---------- code/backend/package.json | 1 + code/backend/scripts/install.ts | 8 +-- code/backend/yarn.lock | 5 ++ 4 files changed, 73 insertions(+), 29 deletions(-) diff --git a/code/backend/README.md b/code/backend/README.md index 4d4641f..4914683 100644 --- a/code/backend/README.md +++ b/code/backend/README.md @@ -1,3 +1,7 @@ +Hier ist deine überarbeitete Dokumentation mit **korrigierten Rechtschreibfehlern, konsistenter Formatierung** und kleineren stilistischen Verbesserungen: + +--- + ## 📦 Verwendete Software - **Backend:** Node.js @@ -6,75 +10,109 @@ --- -## Backend Nutzung +## ▶️ Backend starten -Dieser Command startet das Backend nachdem es korrekt installiert wurde. +Dieser Befehl startet das Backend, nachdem es korrekt installiert wurde: +DB in Docker -``` +```bash yarn start ``` -Die Swagger Doku ist unter [/api-docs](http://localhost:3000/api-docs/) +DB nicht in Docker + +```bash +yarn start-no-docker +``` + +Die Swagger-Dokumentation findest du unter: +[http://localhost:3000/api-docs](http://localhost:3000/api-docs) + +--- ## 🛠️ Installation -### 1. PostgreSQL installieren +### 🚀 Installation mit Docker -#### 🔹 Windows +1. [Docker installieren](https://www.docker.com/) +2. Installations-Skript ausführen: -PostgreSQL kannst du [hier herunterladen](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads). +```bash +yarn install-script +``` -#### 🔹 Linux +--- -Einfach über den Paketmanager deiner Wahl installieren. Danach den PostgreSQL-Dienst aktivieren (logischischerweise nur wenn du `systemd` verwendest): +### 🧱 Manuelle Installation + +#### 1. PostgreSQL installieren + +##### 🔹 Windows + +PostgreSQL kannst du hier herunterladen: +[https://www.enterprisedb.com/downloads/postgres-postgresql-downloads](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads) + +##### 🔹 Linux + +PostgreSQL über deinen Paketmanager installieren. Danach den Dienst aktivieren: ```bash sudo systemctl enable postgresql --now ``` -### 2. In eine SQL-Shell wechseln +--- -🔹 Windows +#### 2. In eine SQL-Shell wechseln -Folgenden Befehl ausführen, um als PostgreSQL-Benutzer in die psql-Shell zu gelangen: +##### 🔹 Windows ```bash psql ``` -🔹 Linux - -Folgenden Befehl ausführen, um als PostgreSQL-Benutzer in die psql-Shell zu gelangen: +##### 🔹 Linux ```bash sudo -iu postgres psql ``` -### 3. Benutzer und Datenbank in PostgreSQL anlegen +--- -In der geöffneten psql-Shell folgenden Befehl ausführen. +#### 3. Benutzer und Datenbank anlegen -```bash +In der geöffneten psql-Shell: + +```sql CREATE DATABASE prisma; ``` -### 4. .env-Datei vorbereiten +--- -Die Datei .env.example in .env umbenennen und dein Passwort dort eintragen. -Außerdem solltest du das Token secret ändern. +#### 4. .env-Datei vorbereiten -### 5. Prisma vorbereiten +- Die Datei `.env.example` in `.env` umbenennen +- Passwort und Token-Secret anpassen -Im Projektordner folgenden Befehl ausführen, um Prisma-Client zu generieren: +--- + +#### 5. Prisma vorbereiten + +Im Projektordner folgenden Befehl ausführen, um den Prisma-Client zu generieren: ```bash yarn prisma generate ``` -### 6. Datenbank initialisieren +--- -Dieser Command erstellt die DB nach der Datei `schema.prisma` +#### 6. Datenbank initialisieren + +Dies erstellt die Datenbank anhand der `schema.prisma`: ```bash yarn prisma migrate dev --name init ``` + +--- + +Wenn du möchtest, kann ich die Doku auch automatisch auf Englisch übersetzen oder als `README.md` formatieren. Sag einfach Bescheid! diff --git a/code/backend/package.json b/code/backend/package.json index 2063ed5..1ac1d57 100644 --- a/code/backend/package.json +++ b/code/backend/package.json @@ -15,6 +15,7 @@ "jsonwebtoken": "^9.0.2", "node": "^22.15.0", "pg": "^8.15.6", + "readline-sync": "^1.4.10", "swagger-jsdoc": "^6.2.8", "swagger-ui-express": "^5.0.1", "zod": "^3.24.4" diff --git a/code/backend/scripts/install.ts b/code/backend/scripts/install.ts index 1665bd9..3b0a989 100644 --- a/code/backend/scripts/install.ts +++ b/code/backend/scripts/install.ts @@ -27,6 +27,7 @@ while (!postgresPassword) { }); !postgresPassword && console.log("Password cannot be empty"); } +// getting user input for .env file const jwtSecret: string = crypto.randomBytes(32).toString("hex"); // 64 Zeichen const env: string = `DATABASE_URL="postgresql://${postgresUser}:${postgresPassword}@localhost:5432/prisma" TOKEN_SECRET="${jwtSecret}" @@ -38,13 +39,14 @@ try { } catch (err) { console.error("Error writing to file:", err); } - +// running the commands from the JSON file +// The commands are executed in the order they are defined in the JSON file (async () => { for (const command of config.commands) { try { const { stdout, stderr } = await execPromise(command); // Wait for the command to finish if (stderr) { - console.log(`stderr: ${stderr}`); + console.log(stderr); } console.log(stdout); // Print the output of the command`); } catch (error: any) { @@ -56,8 +58,6 @@ try { fs.writeFile(json_path, JSON.stringify(config), (err) => { if (err) { console.error("Error writing to file:", err); - } else { - console.log("File has been updated successfully."); } }); console.log("Installation complete"); diff --git a/code/backend/yarn.lock b/code/backend/yarn.lock index b187f62..5f9bf64 100644 --- a/code/backend/yarn.lock +++ b/code/backend/yarn.lock @@ -1312,6 +1312,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +readline-sync@^1.4.10: + version "1.4.10" + resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" + integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== + resolve@^1.0.0: version "1.22.10" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39"