Skip to content

A realtime, browser-based menu picker for shared ordering. The UI is a single index.html file served by a lightweight aiohttp websocket server.

License

Notifications You must be signed in to change notification settings

VibeCoder01/takeaway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crown City Menu Picker

A realtime, browser-based menu picker for shared ordering. The UI is a single index.html file served by a lightweight aiohttp websocket server.

Features

  • Realtime shared session state with per-room people and carts
  • Local allergen filters (per browser) with persistent selection
  • Vegan-only and gluten-free-only filters stored in localStorage
  • Multi-term search with AND/OR matching that expands matching sections
  • Menu “Expand all” / “Close all” controls
  • “Show ALL selected food.” modal with per-person collapse/expand controls

Project Layout

  • index.html — UI, styling, and client-side logic
  • menu.json — menu data and title used by the UI
  • server.py — aiohttp server and websocket room/state handling

Selections are Highlighted

image

Showing everyone's selections

image

Searching

image

Requirements

  • Python 3.9+ recommended
  • aiohttp

Setup

sudo apt install python3.12-venv
python3 -m venv myenv
source myenv/bin/activate
python3 -m pip install aiohttp

Run Locally

python3 server.py

Then open:

  • http://localhost:8080 in a browser

Usage Notes

  • Rooms are in-memory only; restarting the server clears all rooms.
  • The UI connects to the default room; room handling is still supported server-side.
  • Allergen and diet filters are per-browser and stored in localStorage.
  • Duplicate person names are blocked per room.
  • The server logs key user actions with timestamps in the console.
  • Menu data is loaded from menu.json, so serve the UI over HTTP.

Filtering

  • Open “Allergen key” and toggle allergens to exclude matching items.
  • Use “Vegan only” or “Gluten-free only” to keep just those items.
  • “Clear filters” resets both allergen and diet filters.
  • Use search terms separated by spaces, then toggle AND/OR to control matching.

Common Tasks

  • Add a person: click “+ Add person”
  • Filter menu: open “Allergen key” and toggle allergens, Vegan only, or Gluten-free only

License

MIT — see LICENSE.

About

A realtime, browser-based menu picker for shared ordering. The UI is a single index.html file served by a lightweight aiohttp websocket server.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published