All work
Mobile appClient project

T's Café

A mobile ordering and table-booking app for a British & Sri Lankan restaurant: a Flutter app plus a FastAPI backend with menu, orders, reservations, card payments, push notifications and an admin panel.

Product
Restaurant ordering & booking app
Built with
Flutter, FastAPI, PostgreSQL
T's Café app: welcome screen, home and a dish page
1

system for menu, orders and bookings

2

ways to pay: card or cash

3

roles: customer, staff and owner

Overview

The problem we set out to solve.

“Heritage in every bite.” The restaurant's own app, where customers browse the menu, order for collection or delivery, pay by card or cash, and book a table. We built it end to end, including the tools the team uses to run the restaurant every day.

  • Give regulars a faster way to order than phoning the restaurant.
  • Show breakfasts, Ceylon rolls, specials and pizzas the way the food deserves, with photos, options and add-ons.
  • Take card payments safely, without the app ever touching card details.
  • Let customers book a table without double bookings, and keep staff informed instantly.
T's Café home screen and menu with pizzas and specials
Dish page with options and add-ons, and the profile screen
What we built

Every part, built to work in the real world.

A warm, food-first app

Branded welcome screen, a personal home with search and a specials carousel, and a full filterable menu.

Effortless ordering

Dish pages with photos, sizes and add-ons, for collection or delivery, now or scheduled.

Secure card payments

Worldpay's hosted page; only a signed webhook can mark an order as paid. Cash on delivery works too.

Table reservations

Live availability with double bookings blocked by the database itself.

Notifications

Push notifications and an in-app inbox for order and booking updates.

Admin and staff tools

Role-based access, menu management, order and booking workflows, and a dashboard of key numbers.

How it's built

Routes handle HTTP, services hold the business rules, and models describe the data. Prices are always calculated on the server, and placing an order is safe to retry, so a shaky connection can never create a duplicate order.

  • FlutterThe customer mobile app
  • FastAPI & PydanticVersioned REST API
  • PostgreSQL on SupabaseData, constraints and migrations
  • WorldpayHosted card payments, signed webhooks
  • Firebase Cloud MessagingPush notifications
  • CloudinaryMenu and profile images
The outcome

A complete restaurant platform delivered to a real client: customers order, pay and book from their phones, and the team runs the menu, kitchen orders and the floor from one system.

Talkr model library showing Whisper models and hardware details
Next project

Talkr

Offline speech desktop app

Have an idea? Let's build it.

Tell us what you want to build. You'll get a clear plan, a timeline and a fixed price within a week.