Skip to main content

A libre recipe recommendation app.

Project description

mychef


builds.sr.ht status PyPI - Version License: AGPL v3

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mychef-0.1.0.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

mychef-0.1.0-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file mychef-0.1.0.tar.gz.

File metadata

  • Download URL: mychef-0.1.0.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for mychef-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc9587361642f6e207e508ade646c8a95b9c56834fbcbbd986b03693dcb93ad1
MD5 70be9c4aca8dbfe051b3a4fbde3e0fae
BLAKE2b-256 9c5e25ed4ccc1ea3ae3de860341e78a01587a17cf9dffb421862d6f7f9f17423

See more details on using hashes here.

File details

Details for the file mychef-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mychef-0.1.0-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

Hashes for mychef-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2473c2dd46943aac8242082c4b020db64325983283445d62fbb204516cc4823
MD5 08e24bbe76f05ac085dc1e29d6f265c6
BLAKE2b-256 54980d4db592d3e940dade65e7e94ed40533e0192e28ced8b03570f22b3a0e37

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page