Chuyển tới nội dung chính
Trịnh Thị Mai
Đã hoàn thành

MY-Booking

Lập trình viên Android cho MY-Booking, ứng dụng đặt chỗ doanh nghiệp địa phương hai chiều được nhân bản từ nền tảng CIPPO — triển khai luồng đặt chỗ nhà hàng/địa điểm (chọn ngày giờ, bàn và món ăn).

Vai trò
Android Developer
Nền tảng
Android
Thời gian
2025
Khách hàng
Khách hàng bảo mật

Tổng quan dự án

Lĩnh vực
Thương mại địa phương & đặt chỗ — đặt chỗ nhà hàng/địa điểm cho người dùng, cùng một phía riêng dành cho doanh nghiệp quản lý các đặt chỗ đó, phục vụ thị trường Nhật Bản.
Sản phẩm
MY-Booking là một ứng dụng hai chiều được xây dựng trên cùng nền tảng với CIPPO: một ứng dụng dành cho người dùng để xem và đặt chỗ nhà hàng/địa điểm, và một ứng dụng riêng 'MY-Booking for Operator' dành cho doanh nghiệp quản lý các đặt chỗ đó.
Người dùng
Người dùng muốn đặt bàn hoặc đặt chỗ tại một địa điểm, và các doanh nghiệp (nhà hàng/địa điểm) quản lý đặt chỗ đến từ phía operator.
Lý do ra đời
MY-Booking mang đến cho nhà hàng/địa điểm địa phương một kênh đặt chỗ trực tuyến (chọn ngày giờ, bàn/chỗ ngồi, và món ăn) mà không cần mỗi doanh nghiệp phải xây hệ thống đặt chỗ riêng, tận dụng lại cùng nền tảng mà CIPPO được xây dựng trên đó.
Vấn đề
Phần tôi phụ trách là luồng đặt chỗ nhà hàng/địa điểm phía người dùng — cho phép người dùng chọn ngày giờ, chọn bàn hoặc chỗ ngồi, chọn món từ thực đơn của địa điểm, và gửi yêu cầu đặt chỗ.

Vai trò & đóng góp của tôi

Tôi triển khai luồng đặt chỗ nhà hàng/địa điểm từ đầu đến cuối: các màn hình chọn ngày giờ, chọn bàn/chỗ ngồi, và chọn món, cùng các model dữ liệu yêu cầu/phản hồi đặt chỗ bên dưới, và tích hợp Branch để deep-link vào luồng đặt chỗ.

Thách thức & giải pháp

  1. Thách thức kỹ thuật

    Luồng đặt chỗ là một quy trình nhiều bước thực sự (ngày giờ → bàn/chỗ ngồi → món ăn → xác nhận) cần giữ nhất quán khi người dùng di chuyển qua lại giữa các bước, bên trong một ứng dụng cũ đã có sẵn (RxJava2, dependency injection thủ công, không dùng framework DI) thay vì một mã nguồn hoàn toàn mới.

    Cách tôi tiếp cận

    Lựa chọn ở mỗi bước (ngày giờ, bàn, món ăn) được giữ trong state view model dùng chung để luồng vẫn nhất quán nếu người dùng quay lại thay đổi một lựa chọn trước đó, theo đúng pattern DI thủ công/RxJava2 đã dùng ở những nơi khác trong ứng dụng thay vì tạo ra một cách làm mới chỉ riêng cho luồng này.

Kiến trúc & công nghệ

MY-Booking dùng chung kiến trúc gốc với CIPPO: Kotlin, giao diện View/XML cổ điển, RxJava2, dependency injection thủ công, và backend REST API (Retrofit), đóng gói thành hai product flavor (phía người dùng 'booking' và phía doanh nghiệp 'advertiser'/operator) từ cùng một mã nguồn.

Công nghệ

  • Kotlin
  • RxJava2
  • Retrofit
  • Firebase Crashlytics
  • Branch

Dự án này thể hiện

Điều này thể hiện việc xây dựng một luồng giao dịch nhiều bước thực tế (chọn ngày giờ/bàn/món ăn) bên trong một mã nguồn sản phẩm đang hoạt động, và tích hợp một SDK deep-link vào luồng đó.

  • Phát triển Android
  • Tích hợp bên thứ ba

Bạn có dự án tương tự?

Chia sẻ sản phẩm hoặc vấn đề bạn đang gặp. Tôi sẽ trao đổi để tìm hướng hỗ trợ phù hợp.

Làm việc cùng tôi