- Ancient recipes meet modern code.
- CulinaryCodex is an experiment where food history (Roman bread, medieval syrups, stews with garum) meets software design.
- Part cooking-history project, part coding sandbox, with a security twist.
- This project is inspired by food historians, the Tasting History YouTube channel (I adore you, Max Miller), and the idea that coding projects can be fun, flavorful, and give us a taste of the past.
- A small API + front end that serves historical recipes
- Browse dishes by civilization (Rome, Medieval Europe, etc.), view ingredients, and follow steps
- Built to be expandable — today it is bread and stew, tomorrow it could be a whole timeline of ancient cuisines
Instead of collecting recipe cards in a box, recipes are stored in JSON, Flask, and SQLite.
- History is fascinating, especially food history. Ancient Rome had sourdoughs, medieval kitchens had syrups, and all of it connects us to how people actually lived their day-to-day lives.
- I love to cook and I wanted to combine my love of history, cooking and coding/automation.
- I wanted a portfolio project that demonstrates:
- Backend with Flask + SQLAlchemy
- Frontend with vanilla JavaScript + fetch API
- Secure coding habits (CORS, rate limits, dotenv configs)
- Browse seeded recipes via a simple front end
- Roman Panem (bread) — inspired by archaeological loaves from Pompeii
- Soldier’s stew — lentils and garum, hearty Roman cooking
- Medieval sapa syrup — sweet reduced grape must
- Additional seeded recipes across civilizations
- Filters (by era, dish type, difficulty)
- Shopping list generator with modern substitutions (e.g., garum → fish sauce)
- QR codes to pull recipes up on a phone
- Timeline visualization of cuisines across history
- Security hardening: input validation, CORS, rate limiting
- Backend: Flask, SQLAlchemy, python-dotenv
- Frontend: HTML, CSS, vanilla JavaScript
- Database: SQLite (lightweight, easy to swap later)
- Security: CORS controls, basic rate limiting, environment variables
Clone and set up the backend:
git clone https://github.com/ginesthoii/culinarycodex
cd culinarycodex/backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python3 seeds.py
flask --app app run
The backend runs at:
http://127.0.0.1:5000/api
Start the frontend:
cd ../frontend
python3 -m http.server 5500
The frontend opens at:
http://127.0.0.1:5500

