MikaList/game_collection
2024-09-02 10:40:44 +02:00
..
app.py feat: implement user management with roles and last login tracking 2024-09-02 10:32:26 +02:00
database.py feat: implement user management with roles and last login tracking 2024-09-02 10:32:26 +02:00
models.py feat: implement user management with roles and last login tracking 2024-09-02 10:32:26 +02:00
README.md docs: update README to include database structure for users table 2024-09-02 10:35:36 +02:00
requirements.txt feat: implement backend with Flask for game collection management using SQLite database 2024-09-02 09:02:32 +02:00
user_management.py feat: add authentication middleware to restrict access to logged-in users only 2024-09-02 10:40:44 +02:00

Game Collection API

Dies ist ein Backend mit Flask, das eine Sammlung von Spielen verwaltet und eine SQLite-Datenbank verwendet.

Endpunkte

1. Spiele hinzufügen

  • URL: /games
  • Method: POST
  • Body:
    {
        "image": "URL zum Bild",
        "title": "Titel des Spiels",
        "date": "Kaufdatum (YYYY-MM-DD)",
        "buyer": "Name des Käufers",
        "owned": true/false
    }
    
  • Antwort:
    • Status 201: Spiel erfolgreich hinzugefügt.
    • Beispiel:
      {
          "message": "Game added!"
      }
      

2. Alle Spiele abrufen

  • URL: /games
  • Method: GET
  • Antwort:
    • Status 200: Liste aller Spiele.
    • Beispiel:
      [
          {
              "id": 1,
              "image": "URL zum Bild",
              "title": "Titel des Spiels",
              "date": "Kaufdatum",
              "buyer": "Name des Käufers",
              "owned": true
          }
      ]
      

3. Benutzer erstellen

  • URL: /users
  • Method: POST
  • Body:
    {
        "username": "Benutzername",
        "password": "Passwort",
        "role": "user/admin"  # Optional, Standard ist 'user'
    }
    
  • Antwort:
    • Status 201: Benutzer erfolgreich erstellt.
    • Beispiel:
      {
          "message": "User created!"
      }
      

4. Benutzeranmeldung

  • URL: /users/login
  • Method: POST
  • Body:
    {
        "username": "Benutzername",
        "password": "Passwort"
    }
    
  • Antwort:
    • Status 200: Anmeldung erfolgreich.
    • Beispiel:
      {
          "message": "Login successful!",
          "role": "user/admin"
      }
      
    • Status 401: Ungültige Anmeldedaten.
    • Beispiel:
      {
          "message": "Invalid credentials!"
      }
      

5. Alle Benutzer abrufen

  • URL: /users
  • Method: GET
  • Antwort:
    • Status 200: Liste aller Benutzer.
    • Beispiel:
      [
          {
              "id": 1,
              "username": "Benutzername",
              "role": "user/admin",
              "last_login": "2023-10-01 12:00:00"
          }
      ]
      

Installation

  1. Klone das Repository.
  2. Installiere die Abhängigkeiten:
    pip install -r requirements.txt
    
  3. Starte die Anwendung:
    python app.py
    

Lizenz

Dieses Projekt ist lizenziert unter der MIT-Lizenz.

Datenbankstruktur

Die Datenbank enthält zwei Tabellen: games und users. Die users-Tabelle hat die folgenden Spalten:

  • id: Eindeutige Benutzer-ID
  • username: Eindeutiger Benutzername
  • password: Passwort des Benutzers
  • role: Rolle des Benutzers (user oder admin)
  • last_login: Zeitstempel der letzten Anmeldung