Ship a table ordering app with the parts you would otherwise build for weeks already in the box: a guest app and a waiter app sharing one Laravel back end, a shared tab that follows the table through every round a guest sends, a floor board the waiter claims tables from, and a bill that is settled on the spot and recorded on your server. Google and Apple sign-in, push messages, English, Spanish and Arabic, the admin panel and the landing page come connected, each turned on or off in a config file. Light and dark themes in both apps.

Trayora: the guest app's menu board and the waiter app's floor board, with every feature built in

Demo Instructions

A demo build of either app (flutter run, and the Live Preview) opens straight onto bundled sample data, so every screen is populated the moment it launches. The guest app, the waiter app, the documentation, the admin panel and the landing page are each one click away under See every part before you buy below.

Costs not included in the price

Google Sign-In, Sign in with Apple, push notifications and analytics only work once you connect your own paid developer accounts and services: an Apple Developer Program membership, a Google Play Console account and a Firebase project, the same accounts that let you publish to either store. Sign-up and password-reset codes go out through whichever SMTP provider you point the back end at. None of these are included in the purchase price, and this item does not include a payment gateway: every bill is settled offline, at the counter, in cash or at a card machine.

AI disclosure

AI-assisted tools were used to help write and review the source code and the documentation of this item. The author reviewed, tested and finalized every part before release. Every dish and dining-room photo is a licensed Pexels image whose photographer is named in a LICENSES.txt beside it; no image-generation model made any of them. The apps themselves have no AI features.

What a busy dining room needs

  • The integrations are already done: Google and Apple sign-in for the guest app, push notifications, analytics and crash reports, Face ID / fingerprint lock, update prompts, three languages with RTL, a share sheet and remote images each sit behind one interface with a working default — switch each on from a single config file and the console steps are in the documentation. A push opens the screen it is about, in either app.
  • A server and a landing page come with it: backend/ is a Laravel API with a Filament admin panel (the menu with its photos and per-language names, dining tables and their printable table cards, every open and closed tab with its rounds, waiter accounts and dispatch, settle records and reviews, plus App updates and Push history pages), landing/ is a one-page product site already in Trayora’s colors.
  • Ready to show on day one: both apps complete with loading and empty states, a table opened, a round sent, served and settled end to end, 44 and 49 widget tests of their own and 168 passing on the back end (only what is in the download).

Eight things you will not have to build

  • Sign in with Google and Apple — the guest app trades the provider’s id token with the included back end for a session, and only the buttons for the providers you turn on ever appear; a waiter’s account is created for them from the admin panel and signs in with email, with no sign-up screen of its own.
  • Push notifications — a new round or a call for the waiter, and served, settled or acknowledged back to the guest, each opening the table it belongs to; permission asked from Settings, foreground display included.
  • Analytics and crash reports — every screen view and the errors users actually hit, behind a consent switch, in both apps.
  • Face ID / Touch ID / fingerprint lock — a lock on launch that each person switches on in Settings, offered only on phones with a face or fingerprint already enrolled.
  • Three languages with RTL — English, Spanish, Arabic; add a language by copying one file, and the menu and the server answer in the same language.
  • Update prompts — soft and forced updates set on the admin panel’s App updates page, checked at launch.
  • Share sheet — a guest’s bill summary goes out as text through the system sheet, iPad anchored.
  • Pictures on the menu — dish photos from your server’s URLs or bundled assets, with placeholders and fallbacks.

Try each part of Trayora before you buy

The Live Preview covers the whole download, apps and all. It opens on a hub of five demos, and All demos brings you back from each one:

The Live Preview hub: five demos, each one click away

  • Guest app: the Flutter app running in your browser inside a phone frame, with a table already open and sample rounds on it.
  • Waiter app: the companion Flutter app running the same way, with its own floor of sample tables.
  • Documentation: the manual from the download, opened in the browser exactly as a buyer gets it.
  • Admin panel: a read-only snapshot of the Laravel admin from a live install: the dashboard, every sidebar page, one tab open in its edit screen.
  • Landing page: the guest-facing site from landing/, with the restaurant’s dishes in its gallery.

The full source code is included with every license type, Regular and Extended alike.

Menu board

A category strip with a thumbnail on every tile, a list of dishes below it, and a bar at the bottom that keeps a running count for the round a guest hasn’t sent yet.

The table code entry and the menu board with photo cards

Table tab

Every round a guest has sent lands on the same tab as its own numbered section, each with a status of sent, preparing or served and a settlement line once the bill is in; two buttons below it call the waiter or ask for the bill, and switch to a short reply once one is on the way.

A round under review and the table tab with four numbered rounds

Call server answered with Elias is on the way, and the bill on its way

Floor board and serving screen

The waiter claims an open table from a grid colored by its status, then works that table’s rounds down one tick at a time until the one button at the bottom reads Settle.

The waiter's board of every table, grouped by zone

Serving: a round ticked off and the Settle button

A round taken down by the waiter and a bill call on top of the tab

Plus the screens a real app needs: onboarding, sign-in and the four-digit table code entry, order history, a review sheet, notifications and account settings.

Both apps in the dark theme

Landing page included

The download ships a one-page product website for Trayora (landing/): hero with two phone mock-ups, three feature tiles, a swipeable screen gallery, FAQ and store buttons, already set in Trayora’s colors and type; swap the copy and the store links and publish it anywhere static HTML is served.

The landing page in the download, in Trayora's berry color

Laravel back end included

backend/ is a Laravel API with a Filament admin panel: the restaurant’s menu and dining tables, every table’s open and closed tabs with their rounds, waiter accounts with a claim-or-assign floor, settle records and reviews, plus a one-click PDF table card with its four-digit code and a QR code for the web address you set. Point either app at it with one --dart-define=API_BASE_URL and the same repositories talk to it; deploy it with PHP 8.4 or newer, or with the included Docker Compose file.

The admin panel: dining tables with their table cards, the dashboard and the menu

The guest app, the waiter app and the admin panel side by side

Made for the developer who installs it

  • GetX, layered the same way in both apps: screens talk to controllers, controllers to services, and only the services know whether the data comes from the sample set or your server.
  • Switches in one file per app: client ids and on / off flags live in feature_config.dart, and feature_packs.dart decides which implementation each pack uses.
  • Swap in your API without touching a screen: the sample menu, tables and tabs live in one shared package behind Future-returning services, and a server replaces them with one build flag.
  • Every list handles loading and empty: a spinner while the server answers and a written empty state, already there in both apps.
  • Theme-aware components: the same widgets look right in light and dark; one color file in the shared package re-skins both apps at once.

What you get: full Flutter source code for the guest and waiter apps with the eight feature packs, the Laravel back end with admin panel, the landing page, README with re-theming and integration guide, offline HTML documentation, a sample data layer, light and dark themes. Both apps build with Flutter 3.47 or newer, for Android and for iOS.

Notes

New tables are claimed by the waiters themselves by default; switching the restaurant to assignment from the admin panel is one setting. Demo builds of both apps run on their own bundled sample data, and store builds connect to the included back end through a single build flag. Live updates arrive by push, with a 30 second refresh as a fallback.

Bills are settled at the counter, in cash or at a card machine, with the waiter app recording which one was used; the item does not include a payment gateway, a wallet or split billing.

Hosting the back end, a domain name and the Firebase or SMTP services you connect it to are on your own accounts, and each one will incur its own separate cost that this item’s price does not cover. Figma or Sketch source files are not included; every screen is defined in the Dart source.

You May Also Like