WE ARE HIRING • WE ARE HIRING • 
Case Study
Mobile

Sagot Diner

A sophisticated multi-platform restaurant discovery and table reservation application built with Flutter. It connects diners with partner restaurants through AI-powered semantic search, personalized dining recommendations, interactive maps, exclusive dining discounts, and seamless table booking all through a unified mobile and web experience.

Flutter
Dart
GetX
Supabase
PostgreSQL

Challenges & solutions

The technical problems our team solved to ship a reliable, unified mobile experience.

Restaurant schedules and bookings were stored in UTC, while users interacted with local dates and times. Midnight transitions, recurring weekly schedules, and different time formats caused incorrect availability and booking results.

Built a centralized UtcTime utility supporting bidirectional UTC/local conversion, automatic weekday shifting, midnight boundary handling, and flexible 12-hour and 24-hour time parsing. This ensured consistent restaurant schedules and reservation data across timezones.

The search system combined Supabase RPCs and OpenAI-powered Edge Functions, but inconsistent response structures and Flutter Web JSON parsing differences caused runtime errors and incorrect search results.

Implemented adaptive JSON parsing and unified model mapping to support different backend response formats. Integrated a three-tier search architecture covering restaurant-name matching, cuisine-based discovery within a 30 km radius, and semantic search using OpenAI vector embeddings, with daily AI search quota enforcement.

Blocking GPS permission requests during application startup delayed screen rendering and created App Store compliance risks when users preferred browsing with saved addresses or manually selected locations.

Implemented asynchronous background location detection, saved-location fallback handling, and reactive location state management. Added delayed state cleanup to prevent UI flickering when switching between temporary and saved addresses.

Large BIR verification documents frequently encountered network timeouts and server errors when uploaded through a single storage endpoint, particularly on unstable mobile networks.

Built a resilient Bunny CDN upload service with file-size validation, filename sanitization, unique naming, and automatic failover across multiple geographical storage endpoints. This significantly improved upload reliability and prevented filename collisions.

Flutter Web refresh operations cleared the in-memory navigation stack, breaking back navigation and causing users to lose search queries, selected locations, and previously opened screens.

Implemented a three-tier navigation engine using Flutter navigation state, browser session history, and safe fallback routes. Added URL query parameter persistence and conditional web/mobile navigation handling to restore user context after browser refreshes.

Key features

What users get in the finished, shipped product.

AI-Powered Restaurant Search

  • Intelligent 3-door search system that identifies restaurants through direct name matching, cuisine matching, and AI-powered semantic search using OpenAI embeddings.

Restaurant Discovery & Recommendations

  • Personalized restaurant suggestions based on diner preferences, favorite cuisines, dining vibes, budget, and excluded cuisines.

Interactive Restaurant Map

  • Explore nearby restaurants through interactive maps featuring custom venue markers, location-based filtering, and real-time quiet-hour discount indicators.

Real-Time Table Reservations

  • Complete table booking workflow with date, time, guest selection, booking confirmation, unique reservation ticket codes, and automated email notifications.

My Bookings Management

  • View and manage upcoming, pending, and past reservations with cancellation options, booking details, and restaurant navigation.

Exclusive Dining Deals

  • Discover special quiet-hour discounts and promotional offers from partner restaurants.

Restaurant Ownership Claims

  • Dedicated restaurant partner claiming process with business verification and secure BIR document uploads through Bunny CDN.

Diner Onboarding & Preferences

  • Personalized four-step onboarding process to capture dining vibes, favorite cuisines, excluded cuisines, and budget preferences.

User Profile & Collections

  • Manage diner profiles, saved restaurants, personal collections, dining preferences, and account information.

Authentication & Guest Browsing

  • Secure email/password and Google Sign-In authentication using Supabase, with guest browsing support on web platforms and protected actions requiring authentication.

Responsive Multi-Platform Experience

  • Optimized interfaces for Android, iOS, and desktop web, including responsive layouts, browser navigation support, URL state retention, and page restoration.

Legal & Account Management

  • Dedicated legal portal providing Privacy Policy, Terms & Conditions, Cookie Policy, and account deletion functionality in accordance with applicable platform policies and Philippine RA 10173 requirements.

Tech integrations

Third-party SDKs & libraries

13 core integrations powered

Google Sign-In

Core system integration

Google Maps Platform

Core system integration

Flutter Map

Core system integration

Bunny CDN

Core system integration

Brevo

Core system integration

Firebase Core & Hosting

Core system integration

shared preferences

Core system integration

Geolocator

Core system integration

geocoding

Core system integration

PDFx

Core system integration

share plus

Core system integration

google fonts

Core system integration

URL Launcher.

Core system integration

More Case Studies
Related Work

Similar Projects We've Built

WaveOne

WaveOne

WaveOne is a Flutter-based music streaming app that seamlessly combines offline playback with cloud streaming, delivering a unified and personalized music experience.

FlutterGetX+1
View Case Study
CodeX Meet

CodeX Meet

CodeX Meet is a cross-platform WebRTC-based video calling and interactive meeting application designed to simplify one-to-one conferencing. The application establishes direct peer-to-peer WebRTC connections while using Firebase Firestore as a real-time signaling service, eliminating the need for expensive third-party video conferencing SDKs. This architecture provides a secure, privacy-focused, low-latency, and cost-effective communication solution. Built with […]

FlutterDart+3
View Case Study
QuickAssist – WhatsApp Service Booking System

QuickAssist – WhatsApp Service Booking System

QuickAssist is a smart service booking platform that allows customers to book home services directly through WhatsApp without downloading any mobile application. Customers can easily schedule services such as appliance repair, home cleaning, plumbing, salon services, painting, makeup, and more through an automated WhatsApp assistant. All booking requests are managed in real-time through an admin […]

WhatsApp Business PlatformSupabase+4
View Case Study
AI Avatar Chat - Real-Time Voice AI Gift Assistant (Ava)

AI Avatar Chat - Real-Time Voice AI Gift Assistant (Ava)

AI Avatar Chat is a Flutter-based mobile application that enables users to have real-time voice conversations with an AI-powered video avatar named Ava. The assistant helps users discover personalized gift recommendations through natural speech interactions and displays relevant gift suggestions in an interactive shopping interface.

FlutterGetX State Management+7
View Case Study

Have a similar idea? Let's build it together.

From concept to launch, we turn your vision into a world-class product.