Skip to content

Latest commit

 

History

History
128 lines (108 loc) · 6.38 KB

README.md

File metadata and controls

128 lines (108 loc) · 6.38 KB

Logo missing

WebNotes Website

WebNotes ist ein online Notiz-Tool mit dem du Notizen erstellen, bearbeiten und mit deinen Freunden teilen kannst.
WebNotes wurde als Teil einer Prüfung im Modul Web Engineering an der DHBW Friedrichshafen erstellt.

Webpages

URL Inhalt
web-notes.me Liste der eigenen und geteilten Notizen mit Möglichkeit, eine neue Notiz zu erstellen
web-notes.me/getting-started Einführung in WebNotes
web-notes.me/login Login
web-notes.me/register Register
web-notes.me/edit Editor der aktuell geöffneten Notiz (erstellt eine Neue Notiz beim direkten Betreten)
web-notes.me/profile Einsicht und Änderung des Profils

Ordnerstruktur

Ordner Inhalt
components CK-Editor, Header, Footer
controller FrontEndController, BackEndController
documents PSD für das Logo (mit und ohne Schriftzug)
pages Alle Webpages sowie API-Routes und das DatabaseModel
public Sämtliche in der Applikation verwendete Bilder, sowie sonstige Dateien
readme Sämtliche in der README.md verwendete Bilder
shared Helper-Funktionen
styles Sämtliche CSS-Dateien für die Webpages

Kompilieren und ausführen

Hinweis: Um die Applikation lokal ausführen zu können, muss eine Supabase Datenbank zur Verfügung gestellt werden (siehe Datenbank)

  1. Repository clonen
  2. Node und NPM installieren
  3. Im Repository: benötigte Node-Packages installieren
    npm i
  4. Den lokalen Server starten
    1. Development-Server - nach jedem Speichervorgang wird dynamisch aktualisiert
      npm run dev
    2. Production-Server - es wird ein optimierter Build erstellt, welcher anschließend gestartet wird
      npm run build
      npm run start
  5. Der lokale Server steht unter dem localhost mit Port 3000 zur Verfügung

Datenbank

Als Datenbank wird Supabase verwendet.
Die Datenbank ist nach folgendem Schema aufgebaut:

ERM

erm

Data Dictionary

P: Primärschlüssel
F: Fremdschlüssel

Note Tabelle

Attribut Datentyp NULL Default Schlüssel Beschreibung
id INTEGER Nein - P Auto-increment IDs
ownerID INTEGER Nein - F User.id
modifiedAt TIMESTAMP Nein now() - -
inUse TEXT Ja NULL F User.name Username des aktuell bearbeitenden Users
title VARCHAR Nein - -
content TEXT Nein - -

User Tabelle

Attribut Datentyp NULL Default Schlüssel Beschreibung
id INTEGER Nein - P Auto-increment IDs
name TEXT Nein - - -
password TEXT Nein - - Gehasht

UserNoteRelation Tabelle

Attribut Datentyp NULL Default Schlüssel Beschreibung
noteID INTEGER Nein - P, F Note.id
userID INTEGER Nein - P, F User.id

Lokale Umgebungsvariablen

Um lokale Variablen zu setzen muss im Root-Verzeichnis eine Datei namens .env.local angelegt werden.
Hier wird die DatenbankAPI eingebunden.
Dabei sind zwei Werte aus der Datenbank wichtig:

  1. Supabase URL (Supabase -> Settings -> API: URL)
  2. Supabase public key (Supabase -> Settings -> API: anon/public)

Zuätzlich muss ein Schlüssel für die Token-Verschlüsselung gewählt werden (beliebige Reihenfolge von Zeichen).

.env.local

NEXT_PUBLIC_SUPABASE_URL="<Supabase URL>"
NEXT_PUBLIC_SUPABASE_ANON_KEY="<Supabase public key>"
TOKEN_KEY="<Schlüssel>"

Autoren

MIT License

Copyright (c) 2022 DHBW-FN-TIT20

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.