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.
- #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
- 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
- Docker
-
Kopiere das Repository auf deinen lokalen Rechner:
git clone https://github.com/GalacticCodeGambit/LazyCook.git -
(Optional)
.env-Datei erstellen:
Für die Funktion #115 von Email Versenden/Empfangen muss im Ordnerproject/eine.envDatei 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_KEYsollte in produktiven Umgebungen immer gesetzt und einzigartig sein. Für lokale Tests nutztcompose.yamleinen Dev-Default, damit der erste Start nicht abbricht. -
Navigieren zum Projektverzeichnis:
cd LazyCook/project -
Starten der Anwendung mit: Docker Compose:
docker compose up --build -d
Die Anwendung sollte jetzt unter http://localhost:8000 erreichbar sein.
- 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
- Der Workflow
.github/workflows/lint.ymlprüft das Projekt mit GitHub Super-Linter. - Dabei werden u.a. Python-, TypeScript-, JavaScript-, GitHub-Action-, YAML- und Dockerfile-Dateien validiert.
Automatisch formatieren:
black project/backend/ .
Black installieren:
python -m pip install black
Problem: Code hinzugefügt/geändert aber Änderungen werden nicht übernommen von Docker
docker compose -f compose.yaml up --build --force-recreate -d