Proposal for On-Demand Delivery Application

App Developer Studio

8A 7th Avenue

Parktown North

Johannesburg, Gauteng

South Africa

Table of Contents

Table of Contents        1

Covering Note        2

Document Classification        2

Overview        3

High-level Deliverables        3

Our Approach        3

The Advantages of Using a Platform/ Template (versus building from scratch)        4

The Risks of Using a Platform/ Template        4

Technology Stack        5

Offered App Features        7

Agile Project Management        33

Key Roles and Responsibilities        34

Team Member Experience and Expertise        35

Cost        35

Other Notes        37

Next Steps        37

APPENDIX        38

About App Developer Studio        38

Our Vision        38

Primary Competencies        38

Client Portfolio and Endorsements        39

Notable Awards        40

Company Documents        40

Covering Note

Please find our proposal for your app below. You can make comments or ask questions directly on this document and we will respond as soon as possible. Our portfolio, client references and more information about our company can be found in the Appendix or online.

Document Classification

Item

Detail

Client Name

Document Date

20 April 2020

Document Version

1.0

Document Title

Proposal for Courier Company Application

Restriction

Confidential


Overview

The client wants to build an application where users can order a courier to pick up / deliver an item from the app. The solution consists of three components, the customer app, the driver app and a website which all communicate with each other to provide a seamless user experience.

High-level Deliverables

  1. iOS Applications for customers and drivers
  2. Android Application for customers and drivers
  3. APIs/SDKs to utilise features such as geo-location, push notifications, payment and instant chat.
  4. Admin Panel for the client to set up various parts of the application

Our Approach

As the number one app developer on Google Search in South Africa, we receive many requests for on-demand service apps. Regardless of the industry they are targeting (Uber for nannies, Uber for rides etc.), these apps typically require the same features and functionalities which are complex and therefore expensive to design, build and test from scratch. The cost of this sort of development exceeds R700,000 which is prohibitive for many of our clients.

In order to find a solution we have partnered and negotiated preferential rates with an international partner who specialise in building on-demand platforms for international clients. They have built an on-demand food delivery app clones based on the Uber Eats and other successful food delivery apps. We have tested their technologies, demo apps and examined client reviews.

We do not own or manage this platform. However we are experts in it and will assist with design, project management, local customisation, local payment gateway integration, testing, marketing and commercialisation of the technology in the local market. We provide a single point-of-contact to facilitate the smooth, cost-effective implementation of your version of the platform and can therefore deliver significant cost- and time-to-market savings.

The Advantages of Using a Platform/ Template (versus building from scratch)

The platform allows you to quickly test an MVP that is commercially viable and investable.

The Risks of Using a Platform/ Template

Technology Stack

The platform utilises modern technologies to ensure high performance, scalability, testing, management and design.

Service

Frameworks

Back-end and web services

APIs

Node.js – HAPI Framework, Python – Django Framework

Web Apps

HTML, JavaScript , Angular 5.0 JS for the Web Dispatchers and React JS for Customer website

Frameworks

HAPI for Node.JS  API and Django for Python API’s

Server OS

Linux – Ubuntu Distribution

Database

MongoDB Atlas, Elastic Cloud, and REDIS

Message Protocols

AMQP for internal job queues and MQTT as a high speed message queue.

Hosting

AWS/Digital Ocean

Project Management

Jira, Slack, Trello

Security

SSL API’s , 128 bit AES encryption for critical data , MD5  encryption for passwords , Reverse Proxy  

Version Control

Bitbucket

DevOp

Circle CI for Continuous Integration and Continuous Deployment

Email Service

Mailgun/Sendgrid

Scale

Docker for vertical scaling and horizontal scaling. Replica sets for DB to maintain data redundancy. DB Sharding required in case scale is hit

Architecture

Micro-service architecture for better resource management.

Testing (to be discussed)

Load testing via postman load runner and Jmeter, API testing via mocha and chai scripting

App Monitoring

Proprietary tool for monitoring Node.JS, Mongo DB in real time  with alerts setup for maintenance team on slack. Time series data available for past data on a visualization tool.  

Mobile app specifications

iOS app

Swift 5 and Rx Swift for iOS

Android app

Java and Rx Java for Android

Framework:

Android Studio for Android and Xcode for iOS

Platform Environment:

Linux ( Android ) and iOS for iPhone

Offered App Features

S. No

Feature

Starter

Advanced

1

Part 1: Basic Application Setup

1.1

Operational Zones

Yes

Yes

1.2

Cities Setup

Yes

Yes

1.3

Vehicle Type Setup

Yes

Yes

1.4

Vehicle Setup

Yes

Yes

1.5

Customer On-Boarding

Yes

Yes

1.6

Customer Management

Yes

Yes

1.7

Driver On-Boarding

Yes

Yes

1.8

Driver Plans

Yes

Yes

1.9

Driver Management

Yes

Yes

1.10

App Configuration Page

Yes

Yes

2

Part 2: Fare Management

2.1

Fare Setup

Yes

Yes

2.1.1

Contract Pricing

Yes

Yes

2.1.2

Mileage pricing

Yes

Yes

2.1.3

Fixed Price (Long Haul)

Yes

Yes

2.1.4

Fixed Price (Short Haul)

Yes

Yes

2.1.5

Itemized Pricing

Yes

Yes

3

Part 3: Create Load

3.1

Booking a Load

Yes

Yes

3.2

Book Later jobs go to ‘Load Board’

Yes

Yes

3.3

Book now jobs as ‘On-Demand Popup’

Yes

Yes

3.4

Receiver Confirmation Link

Yes

Yes

3.5

One Time Password for Security

Yes

Yes

3.6

Booking Flow

Yes

Yes

4

Part 4: Financials

4.1

Customer Credit Line

No

R40 000.00 Excl. VAT

4.1

Customer Hard Limit

Yes

Yes

4.3

Driver Wallet

Yes

Yes

4.4

Driver Hard Limit

Yes

Yes

4.5

App Wallet

Yes

Yes

4.6

Payment Gateway Wallet

Yes

Yes

4.7

Operator Wallet

Yes

Yes

4.8

Payout

Yes

Yes

5

Part 5: Reports and Data Analytics

5.1

Reports

No

R40 000.00 Excl. VAT

5.2

Customer Reports

No

5.3

Driver Reports

No

5.4

Revenue Reports

No

5.5

Payment Gateway reports

No

5.6

Driver Earnings Reports

No

5.7

App Earnings Reports

No

5.8

Bookings Reports

No

6

Part 6: Accelerated load Search (Powered by Elastic Search)

6.1

Elastic Search

Yes

Yes

6.2

Accelerated Load Search

Yes

Yes

7

Part 7: Operator Module

7.1

The business case

No

R120 000.00 Excl. VAT

7.2

Operator Overview

No

7.3

Operator Admin Panel

No

7.4

Operator Dispatcher

No

7.5

Operator Applications

No

8

Part 8: Dispatcher Portal

8.1

Central Dispatcher

No

R120 000.00 Excl. VAT

8.2

Birds-Eye View

No

Yes

9

Part 9: Website

9.1

WordPress Website

Yes

Yes

9.2

Book a Load

No

R40 000.00 Excl. VAT

9.3

Driver On-Boarding

Yes

Yes

9.4

Track Loads

Yes

Yes

10

Part 10: Other Features

10.1

Send Push Notifications

Yes

Yes

10.2

App Text Settings

Yes

Yes

10.3

Receiver Tracking Link

Yes

Yes

10.4

Invoices

Yes

Yes

10.5

Manage Access

Yes

Yes

10.6

Free Real Time tracking

Yes

Yes

10.7

Payment Gateway Integration

Yes

Yes

10.8

App Installation Service

Yes

Yes

10.9

App Reskin Service

Yes

Yes

10.10

Navigation

Yes

Yes

10.11

Manage App Updates

Yes

Yes

10.12

Live Chat with Support

Yes

Yes

10.13

Additional Language Support

No

R20 000.00 Excl. VAT

10.14

Unlimited Users

Yes

Yes

10.15

In App calling and Text messaging

No

R40 000.00 Excl. VAT

10.16

Offline Management

Yes

Yes

10.17

Driver Presence Management

Yes

Yes

10.18

Advanced App Monitoring

Yes

Yes

Technical Specifications

Yes

Yes

Technical Architecture

Yes

Yes

TOTAL

R390 000.00 Excl. VAT

Features Description

Part 1: Basic Application Setup

Operational Zones

  1. Before an app can operate in a region, it needs to be set as an operational zone by the app admin.
  2. The users of the app will not be able to operate outside this zone. The operational zone is generally set as a full country.
  3. This is the first step in configuring the app to work in a particular region.

Cities

  1. All the cities where the app must operate can be set up from the admin. Each city can have a slight variation in configuration.
  2. Cities can be set up only inside an operational zone.
  3. In order to add a new city, the following details of the city need to be configured

Vehicle Type Setup

  1. The app can handle any number of different vehicle types (For example Truck, Trailer, Pickup etc.)
  2. A new vehicle type can be added by going to the vehicle types page and filling in the following details

3.   A vehicle type has to be activated for a particular city before it can be used in that city, this can be done in the Vehicle Types page by clicking on ‘Cities’.

Vehicle Setup

  1. The next step is to set up an individual vehicle. In the vehicles page, you can create a new ‘Brand’ (Example: Honda) and a new Model (Example CBR Bike) and attach a manufacturing year to it.
  2. After setting up the brand and model, you can add the individual vehicle.
  3. An individual vehicle is connected to a driver, and can have its own restrictions in the permissible goods types. The goods types available to an individual vehicle can be chosen from the set of goods types available to the vehicle type (Example if you have a motorbike that only carries documents, then this can be set from the admin panel)

Customer On-Boarding

  1. The customer can sign up on the mobile application and start booking Loads on the application. The following fields have to be filled for sign up.
  1. The customer will then receive a One Time Password (OTP) on his mobile number, which is for verification purposes, after this he can start using the app to book loads.
  2. The customer can also sign into the app using Facebook and Google login, where the details of a customer are retrieved through his social media accounts. This seamlessly allows him to use the app without having to go through the sign up page.

Customer Management

  1. Customer profiles can be managed directly from the admin panel.
  2. The admin can view all the registration details of customers who have registered using the
    mobile app.
  3. Customers who are non compliant with the companies’ policies can be banned.

Driver On-boarding

1. The driver on-boarding can be done in 2 ways.

2. If the signup is done through the app, then the driver will have to fill in the following fields:

b. Vehicle Details

  1. Vehicle photo
  2. Plate Number
  3. City
  4. Vehicle Type
  5. Goods type (that the vehicle can accommodate)
  6. Year
  7. Make
  8. Model
  9. Capacity
  10. Color

After this the documents of the driver and vehicle need to be uploaded

  1. The other method to on-board a driver is to do a sign up from the admin panel where the same documents need to be added by the admin.
  2. Document Review: ​The app administrator will be able to review all the documents
    submitted by the drivers at the time of sign up
  3. Admin Approval​: Every driver who has signed up on the app has to be approved by the administrator before he can begin using the application.

Driver Plans

A driver plan can be created where the following parameters can be set.

1. Plan name

2. App commission: Set the commission percentage to go to the app at the end of each load.

3. Membership type: Can be a free or a paid membership

4. App commission deduction: Can be done while accepting a load or after completing a trip.

Note: This app supports a multi level marketing system. This is a method of giving a referrer a percentage or a fixed commission every time a driver who he has referred completes a load.

Driver Management

  1. The profiles of newly registered drivers can be reviewed and documents can be viewed.
  2. New drivers have to be approved by the admin before they can use the app and they can be rejected if deemed unsuitable for the organization.
  3. Active drivers who do not comply with the rules of the organization can be banned through the admin panel.
  4. Drivers who are online and offline can be viewed using the ‘Gods View’ feature. Details of the driver can be retrieved from there like the drivers’ battery percentage of the drivers’ phone (This is useful in case a driver switches off his mobile device purposely and claims it is a battery problem), the GPS status of the mobile device can also be seen on the ‘Birds View’ portal.

APP Configuration Page

The app configuration page controls the basic configurable features of the application.

1. Default currency: The default currency of the application is taken from here. If a currency is added in the cities page, then that will override the default currency for that particular city.

2. Default Driver Plan Commission: This denotes the default % commission that will go to the driver, if no plan is assigned.

3. OTP Settings: This gives the settings for One Time Passwords at the time of login to the app.

4. MQTT Settings: MQTT is a software that we use to get free real-time updates from the app and the following parameters can be configured.

Part 2: Fare Management

Fare Setup

There are many different pricing models available to the administrator of the app to setup fares for the app

1. Mileage Pricing: In this pricing model, the fare of a load can be calculated based on distance travelled, time taken, waiting times at pickup and destination and so on. The fare can be set in the following format

Trip Fare = Base Fee + Distance fee + Time fee + Waiting time fee

If minimum fare is greater than Trip fare, then Minimum fare will be charged.

2. Fixed Pricing (Long Haul): In this pricing model, a fixed fee can be applied for long journeys between cities. In the cities page, if you go to a particular city and select ‘Fixed Pricing’. This will allow you to set a price from this city to Every other city on the app.

3. Fixed Price (Short Haul): In this pricing model, you can divide a city into zones, and you can set a fixed price from one zone to another. Example if the ‘Airport’ is a zone, then a fixed price can be set from the ‘Airport’ Zone to the ‘City Centre’ zone

4. Itemized Pricing: Assuming the main components of your goods can be segregated into items such as ‘boxes’, we can implement a pricing model where the size and weight of boxes can be set from the admin panel along with display images for each box. The boxes added to the admin panel will be displayed on the customer app and the customer will be able to choose the number of each box he requires.

Part 3: Create a Load

Booking a Load

The application supports a number of different booking flows for the customer while booking a load on the app. All the booking flows require the user to fill in the following details of the load, after which the app will send the load to all available drivers who are capable of doing the load.

1. Pick-up Address

2. Drop Address

3. Vehicle Type

4. Sender Details

5. Receiver Details

6. Goods Type: Goods types can be preset on the admin panel and particular vehicle types can accommodate particular goods types.

7. Document Upload: images of the goods

8. Weight & Dimension of Goods:

9. Estimated Shipping Price: This is set from the admin panel

‘Book later’ jobs go to the ‘Load Board’

All the drivers have access to a ‘Load Board’ where they can see all the jobs that they are capable of doing. A driver will not see loads that his vehicle is not capable of doing, for example a load where the weight exceeds the capacity of his vehicle.

The booking flow of the app is as follows,

1. Customer makes an offer: ​The customer makes an offer for a load for one location to another, this is done through either the customer web portal or the customer app. The offer is sent to all the drivers in the region.

2. Driver Accepts: ​Every driver has the option to accept the offer made by the customer.

3. Customer Responds: ​The customer has to accept the offer to confirm the job allocation.

4. Double Handshake: ​The customer acceptance completes the allocation of the job to a driver. This will move the job from the ‘offers’ page to the ‘My Jobs’ page in the driver app. It will also move to the ‘My Jobs’ page in the customer app and portal.

‘Book now’ jobs as ‘On-demand Popup’

The key differentiator in the application is the booking popup that goes out to all the drivers in a round robin pattern when the customer makes a booking. The booking goes out to all the drivers available in the area based on proximity with the nearest drivers getting the booking first. The driver can see the key details of the booking such as the pickup and drop location, Booking ID and the fare of the booking along with method of payment.

Receiver Confirmation Link

The key differentiator in the application is the ability to send a confirmation link to the receiver of the goods. The booking is dispatched only once the receiver confirms his address. The link is sent as a hidden BIT.LY link and this goes as an SMS to the receiver of the goods. Until the receiver confirms his details, the job will stay on the ‘Pending confirmation’ page of the customer application. The receiver can view the following details before confirming the order.

1. Goods type

2. Quantity

3. Dimensions

4. Additional details

5. Any pictures that the sender has attached with his booking.

The receiver can also view the ‘receiver address’ on a map and reset it to his current location if required.

https://youtu.be/xdiudFwlAFs?t=386 

One-Time-Password for security

The other feature that distinguishes the application is the OTP that is sent to the receiver of the goods. The OTP is sent as an SMS to the receiver, and the sender can choose to send it while he is making the booking. In order to complete the booking, the driver has to enter the OTP in the driver app at the time of delivery of the goods along with taking the customers’ signature.

Booking Flows

The following booking flows are available to customers

a) Customer booking Flow: in this booking flow, we assume the customer does the booking and the driver accepts it. The booking can either go as an on-demand booking to all the drivers available in a round robin pattern, or it can be sent to a ‘Load Board’ where the drivers can accept and pick up a job from. This booking can be done either from a web portal or from the customer app.

Part 4: Financials

Customer Credit Lines

We understand that this industry generally operates based on credit lines, wherein a customer can get a line of credit for use on the app. We have provided this feature and we have also given the customer the ability to repay the company using his card on the mobile application. The app administrator can provide a limit on the credit line which is the ‘Hard Limit’ of the app. The hard limit is the amount of credit that a customer can use on the app before asked to repay his current credit. Once the customer reaches his hard limit, he will not be able to make any more bookings on the app. The other limit that the administrator can set is the soft limit and when the customer’s credit line comes to this value, he will get a notification but he will not be prevented from making further bookings.

Driver Wallet

The driver wallet maintains a record of the amount of cash held by the driver. This amount can be a risk to the app if it is high so the app can set a limit on the amount of cash that can be carried by the driver. When the driver's cash balance hits this limit he will no longer be able to accept and start more bookings till he has paid the app. The driver has to recharge his wallet and every time he does a cash booking it goes down as he owes the app money. This puts a limit on the liability faced by the app for each driver. A manual credit/debit option also exists which can be used to compensate the driver for money owed to him or to be debited from him due to unforeseen circumstances. The driver can see their recent transactions on the driver wallet on the app as well as the admin.

Driver Hard Limit

The driver will have a hard limit and a soft limit on his wallet. This represents the limits of the drivers’ wallet and the limits can be set from the admin panel. The drivers’ wallet can be recharged for a certain amount of money and every time the driver does a cash booking it reduces as he owes the app money at the end of a cash booking. The soft limit is the point at which the driver will get a push notification warning him that he is close to the hard limit.

App Wallet

The statement indicated the earnings made by the app for each trip. The closing balance of this statement indicates the up-to-date money earned by the app. A report on this statement can indicate the business’s earnings on the system.

Payment Gateway Wallet

This statement will record all the earnings made by the payment gateway on the app. The app supports more than 1 payment gateway so a filter can be applied to sort by any 1 payment gateway. A report on this statement will indicate the amount paid out to payment gateways and can be used to leverage a better % commission with the payment gateway provider in case the system has achieved high transaction volumes.

Operator Wallet

This statement will give a detailed account on the credit line or wallet offered to a fleet owner/operator. The operator will have drivers under him who will have individual wallets with the operator. The summation will be the operator’s wallet with the app.

Payouts

The application supports Payouts to drivers wherein, at a regular time every week, money owed to drivers can automatically be transferred to their bank accounts. However, this is only supported with specific payment gateways (such as Stripe), as not all Payment gateways have the functionality to do this. Currently in South Africa, we would need to evaluate which of the available payment gateways supports this feature, if any.

In case the payment gateway does not have the functionality to perform this task, we can still generate a report from the payouts page which gives the admin an account of how much money is owed/to be collected from each driver on the application.

Part 5: Reports and Data Analytics

Reports

We have integrated the app with Metabase which gives you detailed analytics and reports on the usage of the app and financials. These reports will give you a visual representation of the performance of the business along with trends and patterns. Reports are available on the app for

1. Customers

2. Drivers

3. App revenue

4. Payment Gateway revenue

5. Driver Earning

6. App Earning

7. Bookings

Customer Reports

The following reports are available to view customer data such as

Driver Reports

The following reports are available to view Driver data such as

Revenue Reports
The following reports are available to view Revenue data such as

Payment Gateway Reports

The following reports are available to view Payment gateway data such as

Driver Earnings Reports
The following reports are available to view Driver Earnings data such as

APP Earnings Reports

The following reports are available to view APP Earnings data such as

Booking Reports

The following reports are available to view Payment gateway data such as

Part 6: Accelerated Load Search (Powered by Elastic Search)

Elastic Search

Elastic Search (ES) is a schema-less document-oriented database designed to store, retrieve & manage semi-structured or document-oriented data, that is stored in JSON document form.

Elastic Search is a distributed text search engine suited to handle search queries and is powerful & flexible enough to support large volumes of data via distributed computing in real time.

In comparison to the traditional SQL database management systems that take more than 10 seconds to fetch required search query data, Elastic Search can do that within 10 milliseconds.

Elastic Search is trusted by many big names in the tech industry like Grab, EBay, Vimeo, Lyft, Citibank, Fitbit, GoDaddy, GrubHub, Royal Bank of Canada, Argos, Just Eat, Accenture, Sprint, Dell, Microsoft, Zen desk, and many more.

Accelerated Load Search

The application uses elastic search in order to apply filters and search for appropriate jobs on the load board. Assuming that the driver app receives 100’s of loads on the load board, elastic search will enable the driver to quickly apply filters and sort through the jobs to find the right one for him.

The jobs posted by an agent get posted on the ‘load board’ of all the drivers who are available and online in the region. When there is a scenario with multiple agents posting a large number of jobs every day, the filter option on the driver app gives the driver the ability to filter out bookings that he does not find relevant. The following types of filters are available for the drivers to us.

1. Deadhead Filter: This gives the driver to enter a pickup location of his choice and choose a radius around it. The jobs that will be displayed on the drivers ‘load board’ will be the jobs posted in that particular radius. This gives the driver the ability to limit his ‘deadhead’, which is the amount of distance he travels to start his booking.

2. Date Filter: This filter gives the driver the ability to filter out jobs based on the pickup date. The driver can pick jobs starting on a convenient date for him.

3. Weight Filter: The weight filter gives the driver the ability to filter out loads outside a particular bandwidth of weight that he deems appropriate for his vehicle.

4. Paid by Filter: This filter gives the driver the option to pick the load with the type of payment that he prefers. He can choose a load that is paid for by the Shipper, Receiver or paid by Invoice.

5. Sort by Filter: The driver can choose to sort his loads in the following orders:

The addition of these filters adds a tremendous amount of value to the application by easing the driver’s user experience and making it easier for him to filter out the irrelevant information and find the right load. The filters are done with elastic search which is extremely quick.

Part 7: Operator Module

The business case

After successfully placing a number of shipping companies live on the application, we started to ask for feedback and look for ways we could further improve their experience on the app. Many of them said the same thing. While a number of their driver-partners were freelancers and independent contractors, the companies often tied up with large fleets who would use the application as a forum to get loads for their fleet. These fleet owners didn’t want to leave the price negotiation to their drivers and rather wanted to either do it themselves, or have a dedicated sales team managing negotiations. Additionally, many fleet owners had pre existing relationships with customers and need to keep their customer database separate from the main app database.

The operator panel was created to fill that gap where the administrators of the app do not need to spend additional time and effort specifically sending bookings to these fleet vehicles through the dispatcher. We planned a system where the fleet owners could do it themselves.

The Fleet owner can appoint one or more of his employees to be responsible for bidding with customers for loads and assigning them to the fleet drivers, and this can be done through the ‘Agent App’. Meanwhile the drivers get notified on their application when a load has been assigned to them and the drivers simply need to go to the pickup and complete the job. The fleet owners can even have their own dispatchers on a dedicated dispatcher panel, who will be able to assign and unassign jobs from their drivers in case something goes wrong. The fleet owner himself can access the main management console of the operator and can add his own customers (who’s bookings will come to his own agents) and the fleet owner can put a custom pricing model for his customers.

Operator Overview

The application supports a module for operators (fleet owners) to manage their fleet of vehicles. The operator has access to his own admin panel, where he can see his vehicles and drivers and completed loads. The operator will have his own wallet with the application. The following components come as part of the operator module

  1. Operator Admin panel: An administration panel for operators where the fleet owner will be able to manage his fleet.
  2. Operator Agent App​: This is a mobile app for agents of the operator who would like to negotiate with customers on behalf of the operators’ own drivers. The agents can do the negotiation and then push (assign) the job to one of the drivers of the operator using the app. The agent can track the driver as he does the load.
  3. Operator Driver app​: This app can be used by the operators’ drivers in order to view the jobs that have been assigned to him by the agents of the operator. The driver’s application will not have the ability to negotiate with the customers, and he can only take up jobs that have been pushed to him by an agent of the operator.
  4. Operator dispatcher​: This dispatcher will be able to create loads and dispatch to operator drivers.

In many regions around the world, this industry is mainly operated by fleet owners. This module gives the fleet owner a large degree of control over his vehicles. The fleet owner generally has agents (employees) under him who manage his fleet. We offer the Agent app for these agents to bid for jobs, and assign a job to one of the fleet drivers. The Operator agents can also post a job and send it directly to one of the fleet drivers or he can send it to the load board where all drivers can access the job.

Operator Admin Panel

This is a portal which acts as a management console for fleet owners. When a fleet owner logs into this portal, he can get the booking details of his fleet of vehicles. The operator can also view the details of his wallet transactions with the app.

We understand that a fleet owner may have his own customers, and may wish to set custom rates for his own customers. In order to facilitate this, we have given the following options for the fleet owner in his portal:

  1. Add Customer: The operator will be able to add his own customers. These customers will be able to use the app only to post a load to the operator. The operator dispatcher can get the and can either push it to one of the operator’s drivers, or back to the main ‘Load Board’ of the app where other drivers and operators can view and counter on the job.

Note: From a business point of view, this feature gives the operator the option to ‘subcontract’ jobs from his customers to other agencies or drivers and provides a whole new flow to the app.

  1. Contract pricing: This is the feature where the operator can set a fixed price per route for his own customers. This is an important feature while onboarding operators who have pre-existing relations with customers.

Operator Dispatcher

This is a web portal for dispatchers of the operator who will be responsible for keeping an overview of all the bookings going on with the operator’s drivers. The dispatcher can view the bookings allotted to his company and perform the following functions.

  1. View and Assign the loads posted on the load board by individual customers and assign them to drivers of the operator.
  2. Post a load on the load board and assign It to an available driver of the operator. The dispatcher can also send it to the main load board to be accessed by all the drivers and others operators on the app.
  3. Un-assign a load from a driver in case there is an issue with the load, and assign the same load to another driver of the operator or he can even post it on the load board for any driver on the app to accept it.

Operator Applications

We have taken into account the fact that multiple operators (fleet owners) may be using the system and they might have their own employees and drivers who need access to mobile applications. For this scenario, we have created 2 new applications which will be used for the employees of an operator and the drivers of an operator to manage and complete bookings.

  1. Operator Agent App: The agent of an operator has access to an application where he can view jobs on the load board, and negotiate for jobs there. After the agent has negotiated and a contract has been finalized, the load is then assigned to the company of the operator. The operator agents now have the ability to push the job to one of their own drivers, and this can be done on the app too. Once the driver has started the load, the agent can track the status and location in real time.

  1. Operator Driver App: After the agent has negotiated with the customer and won the load, he has to push it to one of his own drivers. When the agent sends the load to one of his drivers, the driver receives a push notification and the load details are populated in the drivers’ application. The driver simply has to start the load and swipe right to change his status when he arrives at pickup, starts the trip and completes the trip. Whenever the driver updates his status, the agent receives a push notification, and the agent can track his drivers on a map anytime.

Part 8: Dispatcher Portal

Central Dispatcher

Most large companies in this industry generally have specifically designated ‘dispatchers’ who are usually for an individual city, but they can also operate in multiple cities across the application. The application has taken this into account and hence we have created a web portal specifically for dispatchers. Multiple dispatchers can login to the portal and perform the following functions:

  1. View and Assign the loads posted on the load board by individual customers and assign them to drivers who are available
  2. Post a load on the load board and assign It to an available driver. The dispatcher can view and assign loads per city. The dispatcher can post a load on behalf of an existing or a new customer. In case he is posting on behalf of an existing customer, the dispatcher can make the payment deduction from the customer’s card or wallet.
  3. Un-assign a load from a driver in case there is an issue with the load, and assign the same load to another driver.
  4. View all drivers and loads in each city in real time and assign/un-assign from any driver as long as he is available.

Bird’s-eye View

The central dispatcher and the app administrator has access to this portal. The birds-eye view is a centralized portal where the admin/dispatcher can view all the vehicles active on the app at any point of time. The birds-eye view also provides crucial details of all the vehicles and drivers active on the app. The following metrics of a driver can be viewed in the Birds View portal.

  1. Drivers Online: Gives the list of drivers currently logged into the app and using it.
  2. Drivers Busy: Gives the list of drivers who are currently on a trip and are unable to accept more bookings.
  3. Drivers Inactive: Gives the list of drivers who have gone offline all of a sudden due to a loss in network or phones switched off on purpose. This is important from a security point of view.
  4. Drivers Logged out: Gives the list of drivers logged out of the app and unable to accept loads.

Part 10: Website

WordPress Website

We provide a Wordpress website with the application which you will be able to use for your marketing purposes. This website can be used for your marketing purposes and you can easily edit the content through a visual builder that we have used to set up the website.

In addition to marketing, our website has the following functionality.

  1. Book a load: Customers can login to the website and book a load by clicking on the ‘Book Load’ button on the menu. This button will take the user to the agent portal where the user can either sign up as a new user, or login using his existing user ID and password.
  2. Driver Onboarding: You can streamline your driver onboarding by having your potential drivers register on the application by filling out the driver sign up form on the website. New drivers can go to the ‘Join as A Driver’ page and sign up on the application. After the driver has signed up on the website, his details will be sent to the administrator of the app and the driver will be able to login after the administrator has approved it.
  3. Track Loads: Just like all the major logistics and courier companies, we also provide the option for a customer to track a parcel with his booking ID. The customer can login to the website and go to the track loads page and enter the load ID. All the details of the load will be displayed after the Load ID has been entered.

Part 11: Other Features

Send Push Notifications

The admin can send push notifications directly to drivers and customers directly from the admin panel.

The notifications will be sent as push notifications. The following cases can be carried out.

APP Text Settings

  1. Set language, support text and help text for the agent and the driver.
  2. Set cancellation reasons for the agent and the driver.

Receiver Tracking Link

The receiver tracking link allows customers on the application to get real time updates on the status of their load without having to download the application. Once the driver starts the load, the receiver of the goods will get a link (bit.ly to hide the server address). When he clicks on this link, it opens a link in the browser which shows the receiver the position of the vehicle on a map and also the documents that were uploaded at pickup and drop. The receiver can use the link to contact the driver in case of a discrepancy in the address.

Invoices

After a load is complete, invoices are generated automatically and the driver and customer each are given a copy of the invoice on their apps. The admin also has access to load history and previous invoices. Invoices will be rebranded with your company logo and color code.

Manage Access

  1. Accounts can be created in the admin panel with different access permissions, some for read access, some for write and some for edit access.
  2. Any number of accounts can be created for admin users.

Example: If the administrator of the app wants to give view only access to his accountant for the purpose of getting the accounts statements, he can do this. The accountant will not have the ability to make changes on the app, and will only be able to view the admin panel.

Free Real Time Tracking

We have our own proprietary tech stack for real time tracking (track all drivers in real time, track the load live on the map once the driver is assigned, track live on the mobile app and also on birds-eye view). Our stack takes care of 100% message delivery and is also free of charge for all our customers. So you never miss a booking and you never miss any booking update and you can track loads in real time.

Payment Gateway Integration

  1. The app supports multiple payment gateways.
  2. In South Africa, available payment gateways will be evaluated and it will be integrated to provide the required functionalities.

App Installation Service

We help you create app store screenshots for app submission to the Apple app store and Play store. We also help you get app store approvals for your app. We help you in setting your web server up to host the app backend.

App Reskin Service

We change the theme of our app to match your branding and logo. We offer the following:

  1. Update the launch icon
  2. Update the splash page
  3. Update the colors of the app and also the icon colors
  4. Update the links on the app and the share messages, etc.

Navigation

We have integrated both Google Maps and Waze in the driver application. The drivers can use either one of these services to navigate to their drop location

Manage App Updates

Manage app updates from the backend, whenever the app is updated on the app store / play store mark them as mandatory or non-mandatory. If the app update is mandatory all users will have to forcibly update the app before they can use the app, this is very useful in cases where critical app updates are made which necessarily require all users to update the app. Non mandatory updates are useful to let the user know that there is a new update available to download

Live Chat with Support

Live Chat integrated for communicating with app support on both customer and provider apps.

Unlimited Users

We do not limit the number of users in any way. You can add as many customers as you want and as many drivers as you want to list

Additional Language Support

We support multiple languages on the application. If you would like to have your own language added into the app, we will upload all of the strings and allow you to do the translation yourself so that there are no mistakes.

In – App Calling and Text Messaging

The shipper and the carrier have the option to call each other through the app. The calls will go through the regular phone service and normal rates will be charged. However, the shipper and carrier can use an in-build service for text messaging each other, and each party gets a notification when he receives a test message.

Offline Management

The app will store the coordinates offline, within the app itself. Under the event of sudden network loss, the app locally calculates the distance remaining & updates itself once the network is restored.

Driver Presence Management

To prevent offline drivers from receiving booking requests, they are immediately removed from the live view of available drivers and the system will not be able to dispatch bookings to them. This will ensure faster connects between available drivers & passengers.

Advanced App Monitoring

In-depth real time app monitoring of the Node.JS application to manage your server infrastructure, again integrated into slack for easy access for your technical support team. We integrate Fabric into our apps so we monitor the apps at all times for crashes.

Hosting

The app requires  cloud-based dedicated servers for account management, content management, administration panels and APIs.

We recommend that you own the server/s because it is your data and an important asset of your business. We will recommend a server and send you a link to purchase it (for example with Amazon Web Services or GoDaddy). Then you will invite us to configure and set the server up correctly for you.

The size and performance of the server required ultimately depends upon the number of users and how they use it. We recommend starting with following hosting configuration:

  1. Load balancer - 1 GB+ RAM (Ubuntu OS)
  2. 2 App Servers - 4 GB+ RAM, 4 Cores (Ubuntu OS)
  3. 1 DB Server - MongoDB, 8 GB+ RAM, 4 cores (Ubuntu OS)
  4. 1 Server for the message broker - 4 GB RAM, 2 cores (Ubuntu OS)
  5. 1 DB Server - Elasticsearch,  8 GB+ RAM, 4 cores (Ubuntu OS)

Agile Project Management

We utilise Agile Methodology.

A dedicated local Product Owner will be your single point of contact to manage the project deliverables and keep you updated. A local Scrum Master (Project Manager) will manage the design, development and testing/ QA team through the project sprints in conjunction with the platform provider. Our projects are typically broken into fortnightly Sprints agreed with you in advance so you can see actual working outputs throughout the process.

  1. Requirement Gathering:

  1. Application Design/ UI/ UX:

  1. Project Development:

  1. Testing:

  1. Launch

  1. Support/ Maintenance/ Enhancements

Other

Changes to scope are handled through our Change Request process where you will confirm Change Requests prior to us starting work on them so you have control over the total project budget.

You need to provide approval/feedback on milestones/ sprints within 14 days of delivery. If there will be no feedback/approval within 15 days, then the milestone/sprint will be considered completed. Once the project is completed, you need to provide feedback/approval within 15 days of delivery. Feedback provided after 15 days will be treated as a Change Request. 

We utilise Slack (for project communications) and Trello (for project management, issue and risk management) and Bitbucket (for code repository and version control) although we can also work in your project and technology environment as required.

Time Estimation

Estimated solution development time is 3-4 months.

Key Roles and Responsibilities

Team Member Experience and Expertise

App

Bull Horns Panic Button App

SASOL First Field Guide Series

Newman’s Birds of Southern Africa

K53 Learner’s App

Afrihub

National Legislation (NetLaw)

CitizensEye

Launch

2014

2014

2015

2015

2016

2017

2019

Current Status

Live

Live

Live

Live

Live

Live

Live

Website

http://www.bullhornsapp.com/

https://firstfieldguideapp.com/

https://www.newmansbirdsapp.com/

http://www.k53-test.co.za/

Internal (employee) app

http://tiny.cc/02n77y

https://bit.ly/2MKCTv4

Downloads

80,000+

20,000+

10,000+

40,000+

Internal (employee) app

4,000

5,000+ (in 3 weeks since launch)

User Average Rating

4.4

4.3

4.3

4.0

N/A

4.2

4.0

Platforms

iOS, Android

iOS, Android

iOS, Android

iOS, Android

iOS, Android

Android

iOS, Android

Role of ADS

UX Design, Development, Hosting, Maintenance

UX Design, Development, Hosting, Maintenance

Development, Hosting, Maintenance

Development, Hosting, Maintenance

UX Design, Development, Hosting, Maintenance

Development, Hosting, Maintenance

UX Design, Development, Hosting, Maintenance

Relevant Testimonial

Own app

Penguin Random House

Penguin Random House

Penguin Random House

Roche

Sabinet

GIZ

Rob Maclean

James Thomas

Deepa Naran

Tresha Damon

Jennifer Matsunyane

Cost

Design, Development and Testing

Task

Cost (ZAR excl. VAT)

Once-off

Per Month

Basic Development

Basic modules

Requirements Gathering

Design

Project Management

Server Configuration

Testing

One-page responsive marketing website

Website domain registration

App Store Hosting and App Store Optimisation

395,000

Additional Modules

To be quoted based on modules required

App Source Code (optional)

85,000

Hosting

Server and website requirements depend upon predicted user volumes.  Estimated cost only.

~12,000

Maintenance

~2,500

Total

395,000

~14,500

The quote is valid for 30 days only and is based on our current understanding of requirements. It will only be confirmed after the Requirements Gathering phase.

Exclusions:

- VAT;

- Contingency;

- Third-party costs not listed (for example email/ SMS engines, domain purchase);

- Marketing/ sales of the application;

- Travel expenses (if applicable).

Payment Schedule

The Client will be required to make payments to ADS according to the following schedule:

Percentage of Total Fee

Payment schedule

40%

Signature Date

20%

Interim Payment (end of Sprint 2)

20%

Provision of first draft version of app

20%

Submission to App Stores

Other Notes

  1. We recommend and can search and register the app name on the app stores immediately (an App Store Developer Account is required for this).
  2. You will have to set-up an account with a local payment gateway to receive payments. Depending on your preferences and timeframes, you will probably also need to set up a merchant account with a local bank. This process can be time-consuming and should be initiated at kick-off.
  3. Terms and conditions of use, liability waivers, privacy policies are required/ recommended. We can provide links to templates for these.
  4. The handling and use of customer data will be governed by local (and potentially international) data protection laws such as the Protection of Personal Information Act (POPI) and GDPR in Europe. You should make yourself familiar with these.
  5. It is recommended that the client creates terms and conditions for seekers that prohibits them from contacting providers outside of the application to avoid revenue leakage.
  6. We will provide advice on launch strategy and marketing. For example our experience has shown that you need to focus your provider registration and seeker marketing efforts in specific industries and geographies otherwise coverage is inadequate and there are not enough providers for early seekers and providers don’t generate enough jobs from seekers to remain engaged.

Next Steps

Please review this proposal and ask us any questions you may have. We are happy to relook at the requirements and meet with you to discuss if required.


APPENDIX

About App Developer Studio

Our Vision

Utilise and develop the latest technologies in mobile applications, big data and cloud computing to create beautiful, efficient and secure mobile apps.

Primary Competencies

  1. App Development:
  1. Web/ Database:
  1. App design and UI/UX
  2. Commercial/ strategy consultancy
  3. Data Analysis/ MIS
  4. Commerce (in conjunction with our eCommerce Experts business):
  1. App Marketing (social media and paid Facebook/ Google campaigns) and launch strategy
  2. Web Admin and Cloud Hosting (app store, website and server)

Client Portfolio and Endorsements

Our portfolio of applications is available here. You can also view our Bull Horns Responder sample video and our latest augmented reality app demo.

Notable Awards

Company Documents

Disclaimer: All information contained in this document is strictly confidential and is provided for the sole purpose of responding to the Client’s request. It shall not be used for any other purpose and can not be published or disclosed, in whole or in part, to any other party without the explicit prior written permission of App Developer Studio.

Private and Confidential. Property of App Developer Studio