Inspiration

Restaurants lose time with paper menus and busy waiters, and allergy mistakes are dangerous. We built TableTap AI around a real restaurant, Wet Water Resort in Gampaha, using its real menu, so any restaurant can go digital in minutes.

What it does

TableTap AI has three AI agents:

  • Menu Setup Agent: a manager signs up, creates a restaurant and uploads photos of a paper menu. The agent reads them and builds a draft menu with prices, sections and tags (spicy, vegetarian, contains shellfish). Anything it is unsure about is flagged "Please check", and the manager reviews and publishes.
  • AI Waiter: guests open their table link and just say what they need ("we're 4, one vegetarian, one allergic to prawns, about Rs 5000, and it's my friend's birthday"). The agent searches the menu, checks availability and totals the bill using tools, then shows its steps and a plan. Nothing is sent until the guests confirm.
  • AI DJ: a guest types a vague wish ("something romantic, old Sinhala") and the agent turns it into a proper song request for the live singer. The manager accepts or skips it on a music screen.

Around the agents there is a live kitchen board (new, preparing, ready), sold-out switches, table links for every table, and a "Clear table" button so the next guests start fresh.

How we built it

Everything is one Jac codebase: server, screens and AI. We used Jac graph nodes and edges for restaurants, menus, tables and orders, by llm() with typed objects and tools for the agents (Claude Haiku), Jac's built-in login, and def:protect endpoints so managers can only touch their own restaurant. Safety is part of the design: the AI suggests, code checks, humans confirm. Code re-checks allergies, sold-out dishes and totals after the AI. Every AI feature has a friendly fallback (tap dishes to order, type a song yourself). All AI tests use MockLLM, so they cost nothing to run.

Challenges

Passing complex tool arguments to the model did not work, so we used simple lists of strings and numbers. Account data lives in an embedded database, so we learned to reset it properly between test runs. We also had to keep guests, managers and several restaurants strictly separated.

What we learned

Keep the AI away from safety decisions, show the agent's steps on screen so people can trust it, and test with mocks first.

What's next

Speaker voting for the DJ, settings for the music mode and songs, QR codes for the tables, several branches per manager, and a pilot with Wet Water Resort.

Planning documents, mockups and prompts were prepared before the event; all code was written during hacking hours.

Built With

Share this project:

Updates

Submission history