From 37c1cfd46f8589749f8070570d5dca8d5ecd49fe Mon Sep 17 00:00:00 2001 From: klaas Date: Mon, 9 Sep 2024 16:16:40 +0200 Subject: [PATCH] =?UTF-8?q?README=20vervollst=C3=A4ndigt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- app.js | 10 +++--- 2 files changed, 97 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 506c421..fbd8899 100644 --- a/README.md +++ b/README.md @@ -1 +1,92 @@ -# WebApp +# Meine persönliche Test- und Präsentationswebsite + +Willkommen auf meiner persönlichen Website! Diese Seite dient als Plattform, um neue Module zu testen und mich selbst zu präsentieren. Zusätzlich bietet die Website einige nützliche Funktionen, darunter eine Login-Seite für registrierte Nutzer und einen QR-Code-Generator. Es gibt auch ein Kontaktformular für Notfälle, das es anderen ermöglicht, mich zu benachrichtigen, wenn etwas mit meinem Auto passiert. + +## Funktionen + +### 1. **Startseite** + +- Überblick über meine Projekte und Interessen. +- Vorstellung meiner Person und meiner Arbeit. + +### 2. **Login-Funktion** + +- Registrierte Nutzer können sich einloggen, um Zugriff auf erweiterte Funktionen zu erhalten. +- Sicherheit wird durch eine sichere Passwortspeicherung und Authentifizierung gewährleistet. + +### 3. **QR-Code Generator (für angemeldete Nutzer)** + +- Erlaubt es angemeldeten Nutzern, QR-Codes für verschiedene Zwecke zu generieren. +- Einfaches Interface zum Erstellen und Herunterladen von QR-Codes. + +### 4. **Kontaktseite für Notfälle** + +- Ein spezielles Formular, das von anderen genutzt werden kann, um mich in dringenden Fällen zu kontaktieren, wie bei einem Unfall oder einem Einbruch in mein Auto. +- Das Formular sendet automatisch eine Benachrichtigung per Telegram an mich. +- Ein QR-Code zu dieser Seite befindet sich sichtbar im Auto, sodass Helfer schnell und unkompliziert eine Nachricht senden können. + +## Installation und Einrichtung + +### Voraussetzungen + +- Node.js und npm sollten auf deinem Rechner installiert sein. +- Ein Telegram-Bot sollte eingerichtet sein, um Benachrichtigungen zu empfangen. + +### Installation + +1. Klone dieses Repository: + + ```bash + git clone https://git.boergmann.it/klaas/homeboergmann.git + cd repositoryname + ``` + +2. Installiere die Abhängigkeiten: + + ```bash + npm install + ``` + +3. Konfiguriere die Umgebungsvariablen: + + - Erstelle eine `.env` Datei im Hauptverzeichnis und füge die folgenden Variablen hinzu: + + ```plaintext + TELEGRAM_BOT_TOKEN=your-telegram-bot-token + TELEGRAM_CHAT_ID=your-telegram-chat-id + ``` + +4. Starte die Anwendung: + + ```bash + npm start + ``` + + Die Anwendung läuft nun auf `http://localhost:3000`. + +## Nutzung + +### QR-Code Generator + +Nach dem Login können Nutzer auf den QR-Code-Generator zugreifen. Hier können sie QR-Codes für URLs, Text oder andere Inhalte erstellen und herunterladen. + +### Notfall-Kontaktformular + +Die Kontaktseite ist über einen QR-Code zugänglich, der sich im Auto befindet. Wenn jemand das Formular ausfüllt, wird automatisch eine Nachricht per Telegram an mich gesendet, sodass ich sofort benachrichtigt werde. + +## Technologie-Stack + +- **Backend:** Node.js, Express +- **Frontend:** EJS, Bootstrap +- **Authentifizierung:** Passport.js +- **QR-Code-Generierung:** `qrcode` npm-Paket +- **Benachrichtigungen:** Telegram Bot API +- **Hosting:** Kann auf jedem Node.js-fähigen Server betrieben werden + +## Beiträge + +Beiträge und Verbesserungsvorschläge sind herzlich willkommen! Bitte erstelle einen Pull Request oder öffne ein Issue, um Ideen einzubringen. + +## Lizenz + +Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen findest du in der Datei `LICENSE`. diff --git a/app.js b/app.js index 1f50a8a..baf4193 100644 --- a/app.js +++ b/app.js @@ -415,11 +415,11 @@ app.get("/project/:id", async (req, res) => { const url = `${projekt.repository_link}/raw/branch/main/README.md`; // Abrufen der Datei - // const response = await axios.get(url); - + const response = await axios.get(url); + console.log(response.data); // Markdown-Inhalt in HTML umwandeln - // const htmlContent = marked(response.data); - const htmlContent = "Testdata"; + const htmlContent = marked(response.data); + //const htmlContent = "Testdata"; if (!projekt) { return res.status(404).send("Projekt nicht gefunden"); } @@ -431,7 +431,7 @@ app.get("/project/:id", async (req, res) => { }); } catch (err) { console.error(err); - res.send("Fehler beim Abrufen des Projekts"); + res.send(err); } });