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.
Source Distribution
Built Distribution
File details
Details for the file mychef-0.1.1.tar.gz
.
File metadata
- Download URL: mychef-0.1.1.tar.gz
- Upload date:
- Size: 28.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6adffe73379e12ddccc7b094ca2c98ce80ba268fae21479f16d08cf68a3b49aa |
|
MD5 | 47c331a05d1d000243903b3b07b729de |
|
BLAKE2b-256 | 7f0f97b4fff74c656bb8d6d7b232ed1c508127af60043144a1df2eaf37bcb1ac |
File details
Details for the file mychef-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: mychef-0.1.1-py3-none-any.whl
- Upload date:
- Size: 31.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8bfaf938cc8952a3661b179853b16b74595cae26d75a3f1d020d16d65afe022 |
|
MD5 | dd19c329cbaf7882d3b63458b6c9e056 |
|
BLAKE2b-256 | f5f23d08f2687861ec2d45ec7df26df13718152b1e191f6e6cea6605c882e3a9 |