Mobile App Development Case for Tumbil and Tumbil WashPro

Service platform · Canada

Our clients are visionary startup founders from Canada with an idea to transform the home laundry service industry. They conceptualized a platform that connects users in need of laundry services with individuals willing to provide them. Whether you’re someone looking for a convenient way to get your laundry done or an individual seeking an opportunity to earn money by accepting laundry orders, their platform Tumbil aims to create a seamless and efficient solution for both.

Client Requirement

Create a comprehensive solution with two mobile applications: one for customers to seamlessly order laundry services and another for service providers to handle requests and generate income. The solution must include an admin panel for streamlined user and financial management.

Technology Stack

Flutter mobile, dart, freezed, flutter_bloc, dio, flutter_secure_storage, image_picker, google_maps_flutter, permission_handler, ably_flutter, firebase_messaging, flutter_local_notifications, firebase_core, Google Places API, REST, get_storage.

Outcomes

Customer App: Seamless Registration and Login

Users can register and log in via email, Google, or Apple accounts for a smooth onboarding experience.

Nine-Step Order Creation

The app provides a guided nine-step process for creating orders, including selecting a location, choosing the service type, adding laundry details, specifying the quantity of items, and integrating payment options. Data is saved at every step, allowing users to resume their order even if the app is closed.

Integrated Payment System

Powered by Stripe, the payment flow includes pre-authorized payments, with the final amount charged upon order completion.

Order Status Tracking

Each order progresses through five distinct statuses, with relevant information displayed at each stage.

Real-Time Chat

Customers can communicate with service providers through real-time chat for open orders.

Tipping System

Customers have the option to leave a tip after the order is completed.

Account Management

Users can update personal and payment details, as well as contact support directly from their account.

Push Notifications

Notifications keep users informed about their order status and alert them to new chat messages.

Service Providers App: Flexible Registration and Login

Service providers can register and log in using email, Google, or Apple accounts for easy access.

Application Form

Providers complete an application form that is reviewed and approved by admins via the admin panel.

Stripe Integration for Payouts

Providers are required to create and link a Stripe account for payouts. The process is fully native, taking less than three minutes, after which they can start accepting orders and earning money.

Map Integration for Order Management

Google Maps is used to display active and available orders. Providers can toggle between tabs, view order locations on the map, and apply for orders they prefer.

Step-by-Step Active Order Flow

Active orders require providers to complete steps such as marking progress, uploading photos, and weighing laundry bags, ensuring transparency and order accuracy.

Order Preferences

Providers can set their preferred service radius and manage notifications for a personalized experience.

Real-Time Chat

Providers can communicate with customers through real-time chat for active orders.

Rating System

Providers are assigned a rating based on completed orders, which determines their order limits. High-rated users enjoy unlimited orders, while new users are limited to one order at a time.

Earnings and Fees Overview

Providers can view their earnings, payout history, and detailed statistics of past orders. Payouts are automatically processed every Tuesday.

Account Management

Providers can edit personal and payment details and contact support when needed.

Push Notifications

Notifications keep providers updated about new orders and customer messages in real-time.

Admin panel: Map integration:

Google Maps is used to display active and available orders, active WashPros to show the coverage of the city with the service providers. Admins can open active and available orders to view its details.

Admin management

Super Admins can easily add new admin users by entering their name and email address. An automated email invitation is sent to the new admin, including login credentials. This ensures a secure and seamless onboarding process for internal team members.

URL-based routing with State Preservation

To enhance usability and shareability UI state (filters, sorting, pagination, etc.) is stored in the URL, allowing users to share exact views with others. Also, the Admin Panel fully supports native browser navigation (back, forward, refresh), ensuring a familiar and fluid experience.

Orders and Users table views

Comprehensive data tables allow admins to manage both customers and WashPros effectively:

  • View and manage all user and order information.
  • Use advanced search, column sorting, and dropdown filters to quickly find relevant entries.
Order details

Admin panel collects all the information on the order in one place and allows editing of this information for the admin unless the order is completed. Order details page also has a linked Customer and WashPro to the order along with their chat history and photos exchanged in the process of order. 

User details

Admins have full access to all the information provided by the Customer/WashPro, while creating their account, including their personal details provided, address, ID verification, order history and so on. Also, Admins have the ability to approve WashPro applications in the admin panel and change the ranks of the WasPros. These changes are immediately visible to the WashPros in their app

Refunds

Financial management of the orders is available for the admins. They can issue a proportional (splitting the amount between the platform and WashPro, depending on the scenario) or platform only refunds to the users, using the quick and easy interface. 

Challenges

Challenges

Real-Time Chat Integration

Integrating a real-time chat feature into the applications proved to be a complex task. We encountered and resolved issues with time zone discrepancies and timestamp displays, as well as challenges with custom bubble rendering in the chat interface. These fixes ensured a seamless and user-friendly chat experience.

Google Places API Integration

Displaying markers and points on the map required precise handling. To ensure efficient performance and high-quality visuals, we implemented a solution using vector images for rendering map markers.

Code Generation for Error Minimization

To enhance code quality and reduce type-related errors, we adopted tools like freezed and json_serializable. These packages enabled automated code generation for managing side effects, reducing development time, and improving code readability and maintainability.

 

Data Persistence During Order Creation

A robust data-saving mechanism was implemented during the multi-step order creation process. This ensured that users could resume their orders seamlessly, even after closing the app, providing a reliable and user-friendly experience.

contact us

Request a free consultation with our experts & estimate your project

Lets talk