Skip to content

Latest commit

 

History

History
101 lines (84 loc) · 5.06 KB

File metadata and controls

101 lines (84 loc) · 5.06 KB

LazyCook

ci.yml lint.yml SonarCloud Full Metrics (main branch)

LazyCook soll eine Webanwendung sein, die es ermöglicht, vorhandene Zutaten einzutragen. Darauf basierend soll LazyCook mögliche Rezepte/Gerichte vorschlagen, die du aus diesen Zutaten machen kannst.

Star History

Star History Chart

Features

  • #23 Zutaten hinzufügen können
  • #24 Zutaten entfernen können
  • #25 Rezepte/Gerichte automatisch vorgeschlagen bekommen auf Grundlage der eingetragenen Zutaten
  • #201 Personenzahl hinzufügen können und vorgeschlagene Rezept/Gericht Größe automatisch anpassen
  • #27 Als User mit Konto anmelden können
  • #26 Als User mit neuem Konto registrieren können

Optionale Features

  • KI-basierte Rezeptvorschläge Einbindung
  • #33 Alle gespeicherten Zutaten aus der Datenbank, sollen auf einer Seite angezeigt werden und Suchbar sein z.B. nach Gerichtname "Pizza".
  • Auf der Zutaten-Seite, werden grundlegende Zutaten wie z.B. Tomaten, Mehl, Salz und Milch automatisch vorgeschlagen. Diese sollen hinzufügbar oder ignorierbar sein.
  • #46 Konto löschen/bearbeiten können
  • Fehlende Zutaten werden von einem Rezept in einer Einkaufliste aufgelistet
  • Der Nutzer kann Rezepte in die Datenbank hinzufügen/erstellen
  • #47 Der Nutzer kann bereits hinzugefügte Zutaten bearbeiten, wie z.B. Menge, Einheit
  • #45 Passwörter "sicher" in Datenbank Abspeichern als Hash und vom Frontend/Backend "sicher" behandeln

Setup

Anforderungen

  • Docker

Installation

  1. Kopiere das Repository auf deinen lokalen Rechner:
    git clone https://github.com/GalacticCodeGambit/LazyCook.git

  2. (Optional) .env-Datei erstellen:
    Für die Funktion #115 von Email Versenden/Empfangen muss im Ordner project/ eine .env Datei mit den folgenden Variablen angelegt werden:

    GMAIL_USER=<dein.mail@gmail.com>
    GMAIL_PASSWORD=<dein_gmail_passwort>
    JWT_SECRET_KEY=<ein_langes_zufallssecret>
    

    Hinweis: JWT_SECRET_KEY sollte in produktiven Umgebungen immer gesetzt und einzigartig sein. Für lokale Tests nutzt compose.yaml einen Dev-Default, damit der erste Start nicht abbricht.

  3. Navigieren zum Projektverzeichnis:
    cd LazyCook/project

  4. Starten der Anwendung mit: Docker Compose:
    docker compose up --build -d

Die Anwendung sollte jetzt unter http://localhost:8000 erreichbar sein.

Verwendete Technologien

  • Frontend: HTML, CSS, TypeScript/React
  • Backend: Python
  • DB: SQLite
  • Tests: Pytest
  • CI/CD: GitHub Actions
  • Linting: Super-Linter
  • Metriken Analyse: SonarQube Cloud
  • Containerization: Docker
  • Projekt Management: GitHub Projects

Linting

  • Der Workflow .github/workflows/lint.yml prüft das Projekt mit GitHub Super-Linter.
  • Dabei werden u.a. Python-, TypeScript-, JavaScript-, GitHub-Action-, YAML- und Dockerfile-Dateien validiert.

Entwicklung

Linter

Python Black

Automatisch formatieren:

black project/backend/ .

Black installieren:

python -m pip install black

Probleme beim Entwickeln

Problem: Code hinzugefügt/geändert aber Änderungen werden nicht übernommen von Docker

docker compose -f compose.yaml up --build --force-recreate -d