Personal meal planner and recipe database built with Python, Django and htmx. Users can view a weekly calendar grid, add and edit meals and recipes, drag and drop meals between days, and upload data via JSON import.
Deployed at dinrplan.fly.dev.
- Python 3.13+
- PostgreSQL
- uv
Make sure to remember the password.
- Start psql by searching for psql via the Start menu and pressing Enter
- Press Enter, Enter, Enter, Enter, enter your password, Enter
CREATE DATABASE dinrplan;- Optionally create a user for the database, or just use the default user.
cp .env.example .env
Edit .env with your database credentials. Required variables:
| Variable | Description |
|---|---|
SECRET_KEY |
Django secret key |
DATABASE_URL |
PostgreSQL connection string, e.g. postgres://user:pass@localhost/dinrplan |
DEBUG |
Boolean, defaults to False |
uv sync
uv run pre-commit install
uv run python manage.py migrate
uv run python manage.py collectstatic
uv run playwright install
uv run pytest
uv run python manage.py runserver
uv run pytest
After changing the database schema, force re-creation of the test database:
uv run pytest --create-db
uv run coverage run --source="." -m pytest
uv run coverage xml
git push
Deployment to Fly.io is triggered automatically when all GitHub Actions checks pass on push.
Currently, the database is deployed to neon.com. To switch the database host, just update the DATABASE_URL secret.