This is a complete recipe system using Python + Django. A complete demonstration is live at http://recipes.davidgrant.ca.
- Most important models, such as Recipe, Food, Ingredient, Direction, Category, and a few more.
- Very nice admin interface for creating recipes with inline ingredients and directions.
- Front-end: only a recipe_list and recipe_detail so far, but the recipe_detail has an experimental method of displaying recipes that is based on this LaTeX style: http://www.ctan.org/tex-archive/macros/latex/contrib/cooking/ (apparently based on style in a famous German cookbook by Dr. Oetker (Gromzik, J.; Reich, C.; Sander, C. (ed.): Dr. Oetker Schulkochbuch – Das Original. Ceres, Bielefeld, 1996.)
- Automatic conversion from imperial weights and volumes to grams
- Automatic nice formatting of imperial volumes.
- Uses South database migration system.
- OpenEats - Django based recipes website.
- KRecipes - KDE-based desktop recipes software.
- Ben Collins-Sussman's effrecipes - Simple, but it works. Not under active development.
- Recipes on Rails - Ruby on Rails recipes site. Not open source as far as I know. Embeds "Source: Recipes on Rails" on all photos and has google ads. Great site though. One thing it has that my site lacks is per-direction photos. This would be easy to do. I already have per-direction ingredients.
If you are aware of any other similar projects please let me know. I am especially interested in any other web-based and open-source cookbook projects.
Follow these steps to get the recipes site up and running.
- Fork or clone the project.
- run
sudo aptitude install libmysqlclient-dev python-dev gettext
- Install pipenv if you don't already have it
- Run
pipenv install --dev
- Run
pipenv shell
- Copy django_recipes/settings/local.py.example to django_recipes/settings/local.py and alter settings as necessary.
- Create database as per settings defined in django_recipes/settings/local.py (not necessary if using sqlite)
- Run
. setlocal.sh
- Run
source env/bin/activate
- Run
./manage.py migrate
- Run
./manage.py runserver
- Go to http://locahost:8000 in your browser
- The admin interface is at http://localhost:8000/admin
- You can run unit tests by running ./ci_test.sh
To help get started I've provided a dump of my recipes site's tables (see dump.sql)