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

  1. Tech-Stack
  2. Architektur
  3. Datenbankstruktur

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.

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.
  • Habits

    • Felder: habit_id, user_id, name, category, progress, xp, streak, etc.
    • Zweck: Speicherung der Gewohnheiten und des Fortschritts jedes Nutzers.
  • Freundesliste (Friends)

    • Felder: user_id, friend_id, status, etc.
    • Zweck: Verwaltung der Freundesbeziehungen zwischen Nutzern.
  • XP und Gamification-Statistiken

    • Felder: user_id, total_xp, streaks, achievements, etc.
    • Zweck: Speicherung der gesammelten XP und Gamification-Daten zur Motivation.

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.


Navigation


Alle Seiten

  1. Home
  2. Projektübersicht
  3. Anforderungen
  4. Technische Spezifikationen
  5. Setup und Installation
  6. CI/CD und Deployment
  7. Entwicklungs- und Arbeitsprozesse