Skip to content
Mai Trinh
Completed

MY-Booking

Android developer on MY-Booking, a two-sided local business-booking app cloned from the CIPPO platform — implemented the restaurant/venue booking flow (date/time, table, and menu selection).

Role
Android Developer
Platform
Android
Period
2025
Client
Confidential client

Project overview

Domain
Local commerce & bookings — restaurant/venue reservations for consumers, with a separate operator-facing side for the businesses being booked, for the Japanese market.
Product
MY-Booking is a two-sided app built on the same base as CIPPO: a consumer-facing app for browsing and booking restaurants/venues, and a separate 'MY-Booking for Operator' app for the businesses managing those bookings.
Audience
Consumers looking to book a table or reserve a venue, and the businesses (restaurants/venues) managing incoming bookings on the operator side.
Why it exists
MY-Booking gives local restaurants/venues an online booking channel (date/time, table/seat, and menu selection) without each business needing its own booking system, reusing the same underlying platform CIPPO is built on.
Problem
The part I worked on was the consumer-facing restaurant/venue booking flow — letting a user pick a date and time, select a table or seat, choose from the venue's menu, and submit the booking.

My role & contributions

I implemented the restaurant/venue booking flow end to end: the date/time selection, table/seat selection, and menu-selection screens, plus the underlying booking request/response data models, and integrated Branch for deep-linking into the booking flow.

Challenges & solutions

  1. Technical challenges

    The booking flow is a real multi-step process (date/time → table/seat → menu → confirmation) that has to stay consistent as the user moves back and forth between steps, inside an existing legacy app (RxJava2, manual dependency injection, no DI framework) rather than a fresh codebase.

    How I approached it

    Each step's selection (date/time, table, menu items) was kept in shared view-model state so the flow stayed consistent if the user went back to change an earlier choice, following the same manual-DI/RxJava2 patterns already used elsewhere in the app rather than introducing a new pattern for just this flow.

Architecture & technologies

MY-Booking shares its base architecture with CIPPO: Kotlin, classic View/XML UI, RxJava2, manual dependency injection, and a REST API (Retrofit) backend, packaged as two product flavors (consumer-facing 'booking' and business-facing 'advertiser'/operator) from the same codebase.

Technologies

  • Kotlin
  • RxJava2
  • Retrofit
  • Firebase Crashlytics
  • Branch

This project demonstrates

This shows building a real, multi-step transactional flow (date/time/table/menu selection) inside an existing production codebase, and integrating a deep-linking SDK into that flow.

  • Android Development
  • Third-Party Integration

Have a similar project in mind?

Tell me about your product or challenge, and we can discuss how I can help.

Work With Me