On-Demand Services App Development Guide
On-Demand Services App Development Guide
The app ensures mechanics maintain a positive balance by deducting commissions from their wallets after each job, especially in cash transactions where the platform does not automatically collect the fee. If a mechanic’s wallet goes negative, they are blocked from accepting new jobs until the balance is cleared, thus incentivizing them to maintain a positive balance .
The essential database tables include: 1) 'users', storing id, phone, name, and role (customer/provider/admin), 2) 'providers', storing id, user_id, cnic, skills, and wallet balance, 3) 'services', storing id, name, category, 4) 'bookings', storing id, user_id, provider_id, service_id, location, status, and final_price, 5) 'transactions', storing id, provider_id, amount, type, and created_at, and 6) 'reviews', storing id, booking_id, rating, and comment. These tables manage user roles, financial transactions, service categories, and customer feedback .
After a mechanic completes a job, they enter the final amount in the app. The customer receives a popup to approve or dispute this amount. If the customer approves, the job is marked completed, the commission is calculated, and the wallet is updated. In case of a dispute, the admin is notified, and the job is paused until resolved .
Disputes are handled through administrative intervention as the admin is notified in case of a dispute regarding the final amount. The job is paused, providing time for investigation and resolution. The admin's role is crucial in resolving such disputes, as they have monitoring and decision-making authority to adjust wallets and manage outcomes to ensure fair treatment for both parties .
The proposed revenue streams for the on-demand service platform include: 1) Commission per job as the primary source, where a 10%–20% commission is deducted from the service provider's earnings, 2) Featured listing and subscription plans as future revenue streams, where mechanics pay to have their services appear first or pay a monthly fee, respectively, and 3) An optional convenience fee which would be a small fixed fee charged to customers .
Key features in the customer app include phone OTP login, location detection, service category selection, SOS and scheduled mechanic booking, live tracking, in-app chat and call, final amount approval, order history, and ratings & reviews. These features streamline the service booking process, enhance user interaction with service providers, ensure security, and provide transparency and convenience in completing transactions .
Third-party services integrated into the app include Firebase for OTP authentication and notifications, Google Maps API for live location tracking, Easypaisa and JazzCash for payment processing, and AWS S3 or DigitalOcean Spaces for image storage. These integrations provide essential functionalities for secure user verification, real-time service tracking, convenient mobile payments, and efficient data management .
The development is divided into three phases: Phase 1 focuses on developing Minimum Viable Product (MVP) features like login, booking, job acceptance, tracking, and final amount approval. Phase 2 expands to include wallet functionalities, payments, the admin panel, and dispute management. Phase 3 expands the platform with subscriptions, promotions, and geographic expansion into other cities .
The admin's roles and responsibilities in the app include approving or rejecting mechanics, monitoring jobs, handling disputes, managing wallets and payouts, and viewing reports. They have the authority to make adjustments to wallets and manage commissions .
Using Flutter, a single codebase for developing mobile apps, allows for simultaneous deployment on both Android and iOS platforms. This approach streamlines the development process, reduces costs and maintenance efforts, and ensures consistency in functionality and user interface across platforms, ultimately leading to a more efficient use of resources and quicker deployment cycles .