0% found this document useful (0 votes)
18 views7 pages

On-Demand Services App Development Guide

The document outlines the development plan for an on-demand services app in Pakistan, focusing on Karachi, which allows customers to book various services like mechanics and electricians. It details the business model, user roles, technology stack, app features, and development phases. The project aims to launch with a minimum viable product and expand to other cities while ensuring a seamless user experience and effective revenue generation.

Uploaded by

ahtisham ch
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views7 pages

On-Demand Services App Development Guide

The document outlines the development plan for an on-demand services app in Pakistan, focusing on Karachi, which allows customers to book various services like mechanics and electricians. It details the business model, user roles, technology stack, app features, and development phases. The project aims to launch with a minimum viable product and expand to other cities while ensuring a seamless user experience and effective revenue generation.

Uploaded by

ahtisham ch
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

On‑Demand Services App (Pakistan)

Complete Development & Handoff Document

1. Project Overview
Project Name: (To be decided)

Concept: A mobile and web-based on‑demand service platform for Pakistan, starting with Karachi, where
customers can instantly or scheduledly book services such as: - Bike / Car Mechanic (SOS & normal) -
Electrician - Plumber - Carpenter - AC Technician - Wedding Decor & other doorstep services

Customers request a service → nearby service providers (mechanics) receive the request → one accepts →
job is completed → final amount is agreed inside the app → platform earns commission.

2. Business Model & Profit

2.1 Revenue Streams

1. Commission per job (Primary)


2. 10%–20% commission deducted from service provider
3. Featured listing (future)
4. Mechanics pay to appear first
5. Subscription plans (future)
6. Monthly fee for providers
7. Convenience fee (optional)
8. Small fixed fee from customers

2.2 Cash Jobs Handling

• Customer may pay cash directly to mechanic


• Platform commission is deducted from mechanic wallet
• If wallet becomes negative → mechanic is blocked until balance is cleared

3. User Roles

3.1 Customer

• Register/login via phone OTP


• Request services

1
• Track mechanic live
• Approve final amount
• Rate service

3.2 Service Provider (Mechanic)

• Register & verify identity (CNIC)


• Go online/offline
• Accept/decline jobs
• Navigate to customer
• Enter final amount
• Manage wallet

3.3 Admin

• Approve/reject mechanics
• Monitor jobs
• Handle disputes
• Manage wallets & payouts
• View reports

4. Platform Components

4.1 Mobile Apps

• Customer App (Android/iOS)


• Mechanic App (Android/iOS)

4.2 Admin Panel (Web)

• Dashboard
• Provider management
• Job management
• Wallet & commission

5. Technology Stack

5.1 Mobile App

• Flutter (Single codebase Android & iOS)

5.2 Backend

• [Link] + Express OR Laravel (PHP)

2
5.3 Database

• MySQL (Recommended)

5.4 Admin Panel

• [Link] OR Laravel Admin

5.5 Third‑Party Services

• Firebase (OTP, Notifications)


• Google Maps API (Live location)
• Easypaisa / JazzCash (Payments)
• AWS S3 / DigitalOcean Spaces (Images)

6. App Features (Detailed)

6.1 Customer App Features

• Phone OTP login


• Location detection
• Service category selection
• SOS mechanic booking
• Scheduled booking
• Live tracking
• In‑app chat & call
• Final amount approval
• Order history
• Ratings & reviews

6.2 Mechanic App Features

• Phone OTP login


• Profile & document upload
• Availability toggle
• Job requests
• Navigation to customer
• Job status updates
• Enter final agreed amount
• Wallet & transaction history
• Withdraw balance

6.3 Admin Panel Features

• Login (admin only)


• Approve/reject mechanics
• View all bookings

3
• Live jobs map
• Wallet adjustments
• Commission management
• Dispute resolution
• Reports & analytics

7. Final Amount Approval Flow (Critical)


1. Mechanic completes work
2. Mechanic enters final amount in app
3. Customer receives approval popup
4. Customer approves or disputes
5. On approval:
6. Job marked completed
7. Commission calculated
8. Wallet updated
9. On dispute:
10. Admin notified
11. Job paused

8. Wallet & Commission Logic


• Commission % configurable (default 15%)
• Wallet updated after job completion
• Cash jobs → commission deducted from wallet
• Digital payment → commission auto‑deducted
• Negative wallet blocks new jobs

9. Database Tables (Core)

users

• id
• phone
• name
• role (customer/provider/admin)

providers

• id
• user_id
• cnic
• skills

4
• rating
• wallet_balance
• status

services

• id
• name
• category

bookings

• id
• user_id
• provider_id
• service_id
• location
• status
• final_price

transactions

• id
• provider_id
• amount
• type
• created_at

reviews

• id
• booking_id
• rating
• comment

10. APIs (High Level)


• POST /auth/send‑otp
• POST /auth/verify‑otp
• POST /booking/create
• POST /booking/accept
• POST /booking/complete
• POST /booking/approve‑amount
• GET /wallet
• POST /wallet/withdraw

5
11. Development Phases

Phase 1 – MVP

• Login
• Booking
• Accept job
• Tracking
• Final amount approval

Phase 2

• Wallet & payments


• Admin panel
• Disputes

Phase 3

• Subscriptions
• Promotions
• Expansion to other cities

12. Launch Plan


• Start in Karachi
• Onboard 50 mechanics
• Pilot with real users
• Fix bugs
• Public launch

13. Deliverables for Developer


• This document
• UI/UX designs (Figma)
• API list
• Database schema
• Test cases

14. Final Notes


This document fully defines the product. A developer can start building immediately using this specification.

6
Prepared for: App Development Team Prepared by: Product & Design Team

Common questions

Powered by AI

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 .

You might also like