Technische Spezifikationen - Sawatec/streakify GitHub Wiki
Technische Spezifikationen
In diesem Abschnitt wird die technische Architektur und der verwendete Technologie-Stack des Projekts beschrieben. Hier findet ihr Details zu den verwendeten Frameworks, der Architektur und der Datenbankstruktur.
Inhaltsverzeichnis
Tech-Stack
Eine Übersicht der Technologien und Frameworks, die in diesem Projekt verwendet werden, inklusive Frontend, Backend und Datenbank.
-
Frontend: React, Bootstrap
- React wird für die Komponentenstruktur und das Rendern der Benutzeroberfläche verwendet.
- Bootstrap sorgt für das Layout und die Stilelemente der Anwendung.
-
Backend: Node.js, Express.js
- Node.js als serverseitige Laufzeitumgebung und Express.js für die API und das Routing.
-
Datenbank: MongoDB
- MongoDB dient als Datenbank zur Speicherung der Nutzerdaten, Habits, Freundesliste und Fortschrittsinformationen.
-
CI/CD: GitLab CI/CD
- GitLab CI/CD wird für automatisierte Tests und den Deployment-Prozess verwendet.
Architektur
Eine Darstellung der Gesamtarchitektur des Projekts, einschließlich der Kommunikation zwischen Frontend, Backend und der Datenbank.
-
Frontend-Backend-Kommunikation:
- Das Frontend kommuniziert mit dem Backend über REST-APIs. Jede Anfrage des Nutzers wird durch den API-Endpunkt im Backend verarbeitet, das dann mit der Datenbank interagiert.
-
Backend-Datenbank-Kommunikation:
- Das Backend interagiert über Datenbank-Abfragen (z.B. Mongoose für MongoDB) mit der Datenbank, um die Nutzerdaten und Fortschritte zu speichern oder abzurufen.
-
API-Endpunkte:
- Beispiel-Endpunkt 1:
/api/users/register
– Registrierung eines neuen Nutzers. - Beispiel-Endpunkt 2:
/api/habits/create
– Erstellen eines neuen Habits. - Beispiel-Endpunkt 3:
/api/friends/add
– Freund hinzufügen.
- Beispiel-Endpunkt 1:
Hinweis: hier ein Diagramm hinzufügen, das die Architektur visuell darstellt.
Datenbankstruktur
Ein Überblick über die Datenbankstruktur und die wichtigsten Tabellen/Sammlungen.
-
Nutzer (Users)
- Felder:
user_id
,name
,email
,password
,created_at
, etc. - Zweck: Speicherung von Basisinformationen des Nutzers.
- Felder:
-
Habits
- Felder:
habit_id
,user_id
,name
,category
,progress
,xp
,streak
, etc. - Zweck: Speicherung der Gewohnheiten und des Fortschritts jedes Nutzers.
- Felder:
-
Freundesliste (Friends)
- Felder:
user_id
,friend_id
,status
, etc. - Zweck: Verwaltung der Freundesbeziehungen zwischen Nutzern.
- Felder:
-
XP und Gamification-Statistiken
- Felder:
user_id
,total_xp
,streaks
,achievements
, etc. - Zweck: Speicherung der gesammelten XP und Gamification-Daten zur Motivation.
- Felder:
Hinweis: Hier ein ER-Diagramm oder Schema hinzufügen, um die Datenbankstruktur zu visualisieren.
Hinweis: Die technische Spezifikation wird fortlaufend aktualisiert, um aktuelle Änderungen in der Architektur oder im Tech-Stack widerzuspiegeln.