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.
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 |
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 |
Hinweis: Um die Applikation lokal ausführen zu können, muss eine Supabase Datenbank zur Verfügung gestellt werden (siehe Datenbank)
- Repository clonen
- Node und NPM installieren
- Im Repository: benötigte Node-Packages installieren
npm i
- Den lokalen Server starten
- Development-Server - nach jedem Speichervorgang wird dynamisch aktualisiert
npm run dev
- Production-Server - es wird ein optimierter Build erstellt, welcher anschließend gestartet wird
npm run build npm run start
- Development-Server - nach jedem Speichervorgang wird dynamisch aktualisiert
- Der lokale Server steht unter dem localhost mit Port 3000 zur Verfügung
Als Datenbank wird Supabase verwendet.
Die Datenbank ist nach folgendem Schema aufgebaut:
P: Primärschlüssel
F: Fremdschlüssel
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 | - | - |
Attribut | Datentyp | NULL | Default | Schlüssel | Beschreibung |
---|---|---|---|---|---|
id | INTEGER | Nein | - | P | Auto-increment IDs |
name | TEXT | Nein | - | - | - |
password | TEXT | Nein | - | - | Gehasht |
Attribut | Datentyp | NULL | Default | Schlüssel | Beschreibung |
---|---|---|---|---|---|
noteID | INTEGER | Nein | - | P, F | Note.id |
userID | INTEGER | Nein | - | P, F | User.id |
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:
- Supabase URL (Supabase -> Settings -> API: URL)
- 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).
NEXT_PUBLIC_SUPABASE_URL="<Supabase URL>"
NEXT_PUBLIC_SUPABASE_ANON_KEY="<Supabase public key>"
TOKEN_KEY="<Schlüssel>"
- Johannes Brandenburger / github / E-Mail
- Lukas Braun / github / E-Mail
- Henry Schuler / github / E-Mail
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.