45 lines
778 B
Markdown
45 lines
778 B
Markdown
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 .
|
|
```
|