diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6254064..6949965 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -29,6 +29,10 @@ jobs:
# remove stale containers/volumes from previous runs that can cause compose to read invalid metadata
docker compose -f project/compose.yaml down --remove-orphans --volumes || true
docker compose -f project/compose.yaml up -d
+ env:
+ GMAIL_USER: ${{ secrets.GMAIL_USER }}
+ GMAIL_PASSWORD: ${{ secrets.GMAIL_PASSWORD }}
+ JWT_SECRET_KEY: ${{ secrets.JWT_SECRETS_KEY }}
- name: Wait for frontend on :8000
run: |
@@ -54,4 +58,9 @@ jobs:
- name: Run backend tests
run: |
- docker compose -f project/compose.yaml exec -T backend-dev sh -c "python -m pytest tests/ -v"
+ docker compose -f project/compose.yaml run --rm backend-dev sh -c "python -m pytest tests/ -v"
+
+ env:
+ GMAIL_USER: ${{ secrets.GMAIL_USER }}
+ GMAIL_PASSWORD: ${{ secrets.GMAIL_PASSWORD }}
+ JWT_SECRET_KEY: ${{ secrets.JWT_SECRETS_KEY }}
\ No newline at end of file
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 817a815..651fac7 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -1,4 +1,4 @@
-name: "Lint code base"
+name: "Lint Code Base"
on:
pull_request:
@@ -11,7 +11,7 @@ permissions:
jobs:
linter:
- name: Lint code base
+ name: Lint Code Base
runs-on: ubuntu-latest
steps:
- name: Checkout code
diff --git a/.github/workflows/sonarqube-main.yml b/.github/workflows/sonarqube-main.yml
index 8bb652b..86592b5 100644
--- a/.github/workflows/sonarqube-main.yml
+++ b/.github/workflows/sonarqube-main.yml
@@ -2,7 +2,7 @@ name: SonarCloud Full Metrics (main branch)
on:
push:
- branches: [main, master]
+ branches: [main]
workflow_dispatch:
permissions:
@@ -311,4 +311,4 @@ jobs:
if [ "${QG_STATUS}" != "PASSED" ]; then
echo "::error::SonarCloud Quality Gate ist FAILED – siehe Job Summary."
exit 1
- fi
\ No newline at end of file
+ fi
diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml
index e760e9c..6ad0011 100644
--- a/.github/workflows/sonarqube.yml
+++ b/.github/workflows/sonarqube.yml
@@ -2,7 +2,7 @@ name: SonarCloud Analysis
on:
pull_request:
- branches: [main, master]
+ branches: [main]
workflow_dispatch:
permissions:
diff --git a/.gitignore b/.gitignore
index e198633..1bb32b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,9 +32,9 @@ dist/
build/
# Project data / local databases
-project/data/*.sqlite3
-project/data/*.sqlite
-project/data/*.db
+#project/data/*.sqlite3
+#project/data/*.sqlite
+#project/data/*.db
# Logs
*.log
diff --git a/README.md b/README.md
index 951dc34..93a643a 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,31 @@
# LazyCook
[](https://github.com/GalacticCodeGambit/LazyCook/actions/workflows/ci.yml)
[](https://github.com/GalacticCodeGambit/LazyCook/actions/workflows/lint.yml)
+[](https://github.com/GalacticCodeGambit/LazyCook/actions/workflows/sonarqube-main.yml)
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
+
+
+
+
+
+
+
+
+
## Features
- [x] [#23](https://github.com/GalacticCodeGambit/LazyCook/issues/23) Zutaten hinzufügen können
- [x] [#24](https://github.com/GalacticCodeGambit/LazyCook/issues/24) Zutaten entfernen können
-- [ ] [#25](https://github.com/GalacticCodeGambit/LazyCook/issues/25) Rezepte/Gerichte automatisch vorgeschlagen bekommen auf Grundlage der eingetragenen Zutaten
-- [ ] [#30](https://github.com/GalacticCodeGambit/LazyCook/issues/30) Personenzahl hinzufügen können und vorgeschlagene Rezept/Gericht Größe automatisch anpassen
+- [x] [#25](https://github.com/GalacticCodeGambit/LazyCook/issues/25) Rezepte/Gerichte automatisch vorgeschlagen bekommen auf Grundlage der eingetragenen Zutaten
+- [x] [#201](https://github.com/GalacticCodeGambit/LazyCook/issues/201) Personenzahl hinzufügen können und vorgeschlagene Rezept/Gericht Größe automatisch anpassen
- [x] [#27](https://github.com/GalacticCodeGambit/LazyCook/issues/27) Als User mit Konto anmelden können
- [x] [#26](https://github.com/GalacticCodeGambit/LazyCook/issues/26) Als User mit neuem Konto registrieren können
### Optionale Features
- [ ] KI-basierte Rezeptvorschläge Einbindung
-- [ ] [#33](https://github.com/GalacticCodeGambit/LazyCook/issues/33) Alle gespeicherten Zutaten aus der Datenbank, sollen auf einer Seite angezeigt werden und Suchbar sein z.B. nach Gerichtname "Pizza".
+- [x] [#33](https://github.com/GalacticCodeGambit/LazyCook/issues/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.
- [x] [#46](https://github.com/GalacticCodeGambit/LazyCook/issues/46) Konto löschen/bearbeiten können
- [ ] Fehlende Zutaten werden von einem Rezept in einer Einkaufliste aufgelistet
@@ -21,34 +33,43 @@ LazyCook soll eine Webanwendung sein, die es ermöglicht, vorhandene Zutaten ein
- [x] [#47](https://github.com/GalacticCodeGambit/LazyCook/issues/47) Der Nutzer kann bereits hinzugefügte Zutaten bearbeiten, wie z.B. Menge, Einheit
- [x] [#45](https://github.com/GalacticCodeGambit/LazyCook/issues/45) Passwörter "sicher" in Datenbank Abspeichern als Hash und vom Frontend/Backend "sicher" behandeln
- ## Installation und Setup
-1. Klonen das Repository:
+ ## Setup
+### Anforderungen
+- Docker
+
+### Installation
+1. Kopiere das Repository auf deinen lokalen Rechner:
`git clone https://github.com/GalacticCodeGambit/LazyCook.git`
-2. Navigieren zum Projektverzeichnis:
+2. (Optional) `.env`-Datei erstellen:
+ Für die Funktion [#115](https://github.com/GalacticCodeGambit/LazyCook/issues/115) von Email Versenden/Empfangen muss im Ordner `project/` eine `.env` Datei mit den folgenden Variablen angelegt werden:
+ ```
+ GMAIL_USER=
+ GMAIL_PASSWORD=
+ JWT_SECRET_KEY=
+ ```
+ 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`
-3. Starten der Anwendung mit: Docker Compose:
+4. Starten der Anwendung mit: Docker Compose:
`docker compose up --build -d`
Die Anwendung sollte jetzt unter `http://localhost:8000` erreichbar sein.
-Für die Funktion [#115](https://github.com/GalacticCodeGambit/LazyCook/issues/115) von Email Versenden/Empfangen muss im Ordner `project/` eine `.env` Datei mit den folgenden Variablen angelegt werden:
-```
-GMAIL_USER=
-GMAIL_PASSWORD=
-```
-
## 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
-### Code-Quality / Linting
+### Linting
- Der Workflow `.github/workflows/lint.yml` prüft das Projekt mit **GitHub Super-Linter**.
-- Dabei werden u.a. Python-, TypeScript-, JavaScript-, YAML- und Dockerfile-Dateien validiert.
+- Dabei werden u.a. Python-, TypeScript-, JavaScript-, GitHub-Action-, YAML- und Dockerfile-Dateien validiert.