basil is a personal project to help me grocery shop and learn Rust. It can generate grocery lists based on most frequently purchased ingredients, as well as ingredients from my favorite recipes, and syncs it to my grocery list on Todoist, all grouped by aisle.
Note: this is a tool I use every time I go grocery shopping, but it's also a side-project for my own learning purposes, so over-engineering is expected here.
- List of all ingredients for one-off selection
- List of all ingredients for any given recipe
- Determine amount of ingredients to get (
onion x3) based on recipe/ingredient selections - Final grocery list grouped by aisle
- Todoist sync
- A better frontend experience in place of Rust-based templating
- Ordering: alphabetically, chronologically (most-recently purchased), hierarchically (aisle)
- Dockerize Rust and Preact apps?
cp env-example .envand fill in the relevant TODOIST API valuesdocker compose upto get PostgreSQL runningpsql -h localhost -d basil -U root -f dump.sqlto import datacd backend && cargo runto get the API runningcd frontend && npm run devand visitlocalhost:8080