This is a complete recipe system using Python + Django. A complete demonstration is live at http://recipes.davidgrant.ca/cookbook/.
- 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.
- 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'
- Run ./createVirtualEnv.sh to create a virtualenv environment in an env directory with the correct dependencies. This assumes you have pip and virtualenv.
- Copy django_recipes/settings/local.py.example to local.py and alter settings as necessary.
- Create database (not necessary if using sqlite)
- Run ". setlocal.sh"
- Run "source env/bin/activate"
- Run ./manage.py syncdb from the menu
- 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