No description
Find a file
2025-10-18 14:26:42 +11:00
.github/workflows Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
ingredients Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
meals Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
persons Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
products Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
recipes Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
shopping Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
tests Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
.editorconfig Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
.gitignore Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
common.py Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
db.py Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
main.py Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
plan.md Significant refactor 2024-01-13 12:54:04 +11:00
pyproject.toml Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
README.md Added ruff, black and mypy 2025-10-18 14:26:42 +11:00
requirements.txt Fixed requirements.txt 2024-09-20 20:12:46 +10:00
transform.sql Squashed commit of the following: 2024-10-13 19:19:57 +11:00
units.py Added ruff, black and mypy 2025-10-18 14:26:42 +11:00

Meal planner backend

Structure

  • main.py: FastAPI app with all HTTP endpoints.
  • db.py: aiosqlite connection + schema bootstrap across subpackages.
  • Domain packages with models and persistence:
    • products/ (db, scrapers for Woolworths/Coles)
    • ingredients/
    • recipes/ (db, scraping)
    • meals/
    • persons/
    • shopping/
  • tests/: unit and API tests with sample HTTP fixtures.

Getting started

Install packages

pip install -r ./requirements.txt

Run API (dev)

uvicorn main:app --reload

Run tests

python -m unittest -q

Tooling

This repo includes baseline configs in pyproject.toml:

  • black (format)
  • ruff (lint)
  • mypy (type check)

Optional commands (install these locally first):

ruff check .
black .
mypy .