Skip to content

lennystepn-hue/MenuMagic

Repository files navigation

MenuMagic

AI-first menu tool for restaurants. Photograph your existing menu or your dishes (or start blank), upload your logo, and get a print-ready, multilingual, LMIV-compliant menu — with optional printed copies and a QR mobile menu.

Two-AI architecture:

  • Claude Sonnet 4.6 — the Brain: extraction, dish recognition, translation, LMIV allergen detection, logo analysis. Produces structured data only.
  • gpt-image-2 — the Designer: complete print-ready menu layout, food photos, logo integration, 4 style variants. Produces the final visual artifact.

Core principle: every flow ends in AI generation. The final menu is always an AI-generated image — never an HTML-rendered PDF.

Stack

FastAPI · PostgreSQL 16 · Redis 7 + RQ · MinIO (S3) · React + Vite + TanStack Router · Tailwind v4 · shadcn/ui · Caddy · Docker Compose.

Local development

Requires Docker + Docker Compose.

cp .env.example .env   # adjust if needed
docker compose up -d --build

Then:

Host ports

The compose stack maps host ports that can clash with other local stacks. Override them in .env (defaults chosen to avoid the common Postgres/Redis ports):

Service Host port Env var
Postgres 5433 DB_HOST_PORT
Redis 6380 REDIS_HOST_PORT
MinIO API 9000 MINIO_HOST_PORT
MinIO console 9001 MINIO_CONSOLE_HOST_PORT
Web (Caddy) 80 WEB_HOST_PORT

Internal service-to-service ports are always the defaults (db:5432, etc.).

Useful commands

docker compose ps                 # service status
docker compose logs -f backend    # tail backend logs
docker compose down               # stop

Database migrations and tests run inside a one-off backend container (mounting the live source, so no rebuild needed):

# apply migrations
docker compose run --rm --no-deps -v "$(pwd)/backend:/app" -w /app backend \
  alembic upgrade head

# generate a new migration after changing models
docker compose run --rm --no-deps -v "$(pwd)/backend:/app" -w /app backend \
  alembic revision --autogenerate -m "describe change"

# run tests
docker compose run --rm --no-deps -v "$(pwd)/backend:/app" -w /app backend \
  sh -c "uv pip install --system -q '.[dev]' && python -m pytest -v"

Build order

The product is built in dependency-ordered sessions (spec §24): Foundation → Brain → Designer → Editor → Recognition → Checkout/Print → QR → Compliance. See the spec for full detail.

About

AI-first menu builder for restaurants — turn a photo of your menu into print-ready, multilingual, allergen-compliant designs with QR ordering, in minutes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors