A libre recipe recommendation app.
Project description
mychef
Minimal, libre recipe recommendation app.
The goal is simple: enter in ingredients you have and get back tasty recipes.
Features
- JSON API for adding recipes with an authenticated user.
- Offer CLI for managing users and app state.
- Expose configuration options through environment variables.
Roadmap
- Web interface for managing recipes.
- Filtering of recipes based on ingredient input.
- Sample web scraper for uploading recipes.
Quickstart
Install package:
pip install mychef
Initialize application:
mychef init
Add a user:
mychef users add
Launch application server:
mychef run
Configuration
You can configure parts of the application in the shell environment. Here's an example .env
:
# Logging
LOG_LEVEL="info"
# Database
DB_PATH="/./mychef.db"
# Security
SECRET_ALGORITHM="HS256"
SECRET_KEY="<generated-when-initializing-app>"
SECRET_KEY_N_BYTES=32
Development
The easiest way to develop locally with mychef
is to use hatch. With hatch
, you will have access to important helper scripts for running locally, linting, type-checks, testing, etc.
Testing
Lint and check types with:
hatch run types:check
Run test suite:
hatch run test
Database Management
To upgrade the local database to latest schema, run:
hatch run db:upgrade
Now that the tables are created, you can add fixtures:
hatch run db:fixtures
If you add or update a table, you can generate a migration script by running:
hatch run db:migration
If the migration script wasn't generated, check to see if you imported the model to env.py.
Local Server
Run the application server locally with:
hatch run dev
The server should reload on changes to the source code.
License
mychef
is distributed under the terms of the AGPLv3 license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.