Proposal for Food 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

User Journeys        3

Our Approach        5

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

The Risks of Using a Platform/ Template        6

Technology Stack        7

Basic Feature Modules (included)        8

Advanced Feature Modules (optional extras)        17

Hosting        21

Agile Project Management        22

Key Roles and Responsibilities        23

Team Member Experience and Expertise        23

Cost        24

Other Notes        26

Next Steps        26

APPENDIX        27

About App Developer Studio        27

Our Vision        27

Primary Competencies        27

Client Portfolio and Endorsements        28

Notable Awards        29

Company Documents        29

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

Document Version

1.0

Document Title

Proposal for Food Delivery Application

Restriction

Confidential


Overview

The client wants to build an application where users can order and pay for food through the app. The solution consists of three components, the customer app, the store app and the driver app which all communicate with each other to provide a seamless user experience. Stores can choose to accept or decline customer orders and drivers have the option to go offline when they are not available.

High-level Deliverables

  1. iOS Applications for customers, stores and drivers
  2. Android Application for customers, stores 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 stores and products

App User Journeys

  1. Customer:
  1. Search store through categories that have been set up by the admin e.g. drinks, fruits, deli etc;
  2. Search/ filter within a category items according to popular, newest, price: high to low or low to high;
  3. Sort according to brand, manufacturer and price;
  4. View of the store rating, distance and minimum order value;
  5. Ability to add multiple items to the cart;
  6. View cart items with the ability to increase quantity or remove an item;
  7. Option of delivery or pick up;
  8. Option to book for now or schedule a booking;
  9. Select address using either geolocate or typing it in;
  10. Select from payment methods of card or pay on delivery;
  11. Receive email notification that the order has gone through;
  12. Receive push notification once a driver has accepted the oder and is in transit;
  13. Track the order;
  14. Review and rate the driver.

Customer App Demo: MPEG 4 Video from Google DriveClick to open in Google Drive

  1. Store:
  1. Receive orders placed by customers;
  2. Accept or decline orders.

Store App Demo: QuickTime Movie from Google DriveClick to open in Google Drive

  1. Drivers:
  1. Ability to go online or offline (i.e. available or not available). A driver will not receive any orders when he is offline;
  2. Receive orders with the option to reject;
  3. Ability to view the entire job detail;
  4. Slide the arrow to start job (customer will get a notification);
  5. Slide the arrow to advise that he has arrived at the store (customer will get a notification);
  6. Slide arrow to advise he is enroute to the customer (customer will get a notification);
  7. Slide arrow to advise that he has arrived at the customer (customer will get a notification);
  8. Slide arrow to advise the items have been delivered (customer will get a notification);
  9. Request customer to sign as proof of delivery;
  10. Rate the customer and submit.

Driver App Demo: MPEG 4 Video from Google DriveClick to open in Google Drive

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 R600,000 which is prohibitive for many of our clients.

In order to find a solution we have partnered and negotiated preferential rates with a leading provider of 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


Basic Feature Modules (included)

The platform provides all the basic functionality as part of a “base” product.

Customer Application

Login/Sign up

  1. Supports Login/Signup with ​Phone Number

  2. Supports Social Login/Login with ​Facebook & Google.

  3. Retrieve password via phone number.

  4. Unique Verification code sent to the user’s email or phone number ensures quick and seamless experience for Signup and Password Retrieval process.

  5. For iOS, the application comes with inbuilt support for login with Touch ID and Face ID.

Guest User​: A user can explore the application without signing up or logging into the application. Login is necessary only if the user wants to perform a user specific action like accessing saved cards, saving addresses, placing an order.

Store Listing

The store listing page shows all the stores serving to the user’s location and the different components on this page are as follows:

  1. Store Search: Powered by Elasticsearch, store search allows a user to search for a specific store from the list of stores available under the selected category at the customer’s selected location;
  2. Offer Banners: Offers Banners from all the stores can be seen on the top of the page. Clicking on the banner enlists the products that has been discounted under the offer;
  3. Favourite Stores : All the stores marked favorite by the user start appearing on the top of the listing page for the user;
  4. Stores: Each store has the following components :
  1. Store Logo Image;
  2. Store Name;
  3. Sub Category;
  4. Area;
  5. Store Offer;
  6. Store Rating;
  7. Store’s distance from the customer’s location;
  8. Minimum Order Value.
  1. Global Search: Powered by Elasticsearch, global search allows the user to search for products from all the stores available under a category at the customer’s selected location. The search results can be filtered based on the following parameters:
  1. Brand;
  2. Manufacturer;
  3. Category;
  4. Sub Category;
  5. Price Range.

User can also apply one of the following sorting options to the search result:

  1. Cart: User can switch to his cart at any point of time, and checkout the items added to his cart.
  2. My Orders: All the orders, active and completed, can be reviewed under this tab.

Search, filters & sorting

Grocer leverages Elasticsearch to enable super fast search and filtering from a huge inventory/database of products

Filters are available in the search results, product listings for category, sub – categories, Trending Products, Everyday Lowest Prices, Product Listings for a Brand.

Products can be filtered based on the following parameters:

  1. Product Category;
  2. Sub-Category;
  3. Sub–Subcategory;
  4. Brand;
  5. Manufacturer;
  6. Price Range;
  7. Offers.

Sorting of the products can be done in the following ways:

  1. Newest Product First;
  2. High to Low Price;
  3. Low to High Price;
  4. Popularity.

Store Page

Each store has its own page allowing users to explore the store categories, brands, trending products, favorite a store, search for a specific product inside the store. The components are as follows :

  1. Store Details:The details include :
  1. Store Logo Image;
  2. Store Name;
  3. Sub Category;
  4. Area;
  5. Store Offer;
  6. Store Rating;
  7. Store’s distance from the customer’s location;
  8. Minimum Order Value.
  1. Favorite: A user could mark a store favorite, and for the ease of access it starts appearing on the top of the store listing page only for the user.
  2. Store Search:A user could search for a product inside a specific store and filter them based on one of the following filters:
  1. Brand;
  2. Manufacture;
  3. Category;
  4. Sub-Category;
  5. Price Range.
  1.  User can also apply one of the following sorting options to the search result:
  1. Price High-to-Low;
  2. Price Low-to-High;
  3. Popularity.
  1. Trending Products: To show a list of top 10 Trending Products from a store we use a smart algorithm built with Python to understand the product trends for each store based on the number of times a product was added to a cart, purchased, wish-listed, favorite and view in a given interval of time, etc.
  2. Brands:The brands of the products listed with the store are shown on the store page and clicking on a brand leads to a page that lists all the products under the selected brand.

Product Description Page (PDP)

Each product has a PDP, and it allows the user to explore the pictures, details, share it, add it to the cart, update the quantity available in the cart, etc.

  1. Pictures: A user can browse through multiple pictures of a product and expand to full screen mode for a better view;
  2. Favorite: A user, when logged in, can mark a products favorite. This provides ease of access to it from a vast list of items and a quicker checkout process;
  3. Smart Product Sharing. A deep link for a content is a link that directs the user past the home page of an application directly to the content. The link is generated from the page itself, in our case PDP. A user can generate a Deep Link for the product and share it on:
  1. Facebook;
  2. Google+;
  3. Twitter;
  4. Email;
  5. SMS;
  6. iMessages, and other social media, sharing or messaging platforms.

When another user [who received the shared link ] clicks on it, one of the two things happen:

  1. If the user already has the Grocer application installed on the user’s mobile, the user will be taken directly to the shared product’s page on the application;
  2. If the user doesn’t have the Grocer application installed on his/her mobile, he/she will be taken to the Apple Appstore or Google Playstore to download the application.
  1. Pricing: Shows the original and discounted price of the product [in case there is no discount on the product, only one price is visible].
  2. Details: Different information about the product like description, ingredients, nutritional values, etc are shown for each product [driven by the input on the CMS Panel, each product could have different details].
  3. Unit: A user can choose from different units/variations available for the products, each unit has a different price associated with it. Therefore, when a user clicks on a unit, the pricing section also changes.

Cart Page

  1. Grocer allows the users to order from multiple stores at the same time to enhance the user experience of ordering on the application. However, the functioning of the cart page is also affected by the parameters configured while setting up the categories each store is associated with. Components of the cart page :
  1. Store Logo        
  2. Store Name
  3. Area Name
  4. Cart Value Status:While adding, removing or updating a product the delivery fee status line shows the following :
  1. Amount difference between the current cart value and the minimum order value
  2. Amount difference between the current cart value and the threshold order value for free delivery.
  1. Products:All the products added to the cart can be viewed on the cart page and users can update their quantity, or delete them from the cart.
  2. Additional Notes: A user can attach additional information like the ‘Please add less sugar to my coffee’, or ‘Leave the package at the front door ’ with order using additional notes.
  3. Final Total :The total value of the cart including the individual subtotals of each store in case of a multiple store cart situation.
  4. Your Savings: The cart also shows the user his/her savings from the products added to the cart.

Multi-Store Cart ordering

As mentioned briefly in the last section, the cart can be configured [configuration is done at the store category level] to support two different ways of ordering. :

  1. Single-Store Ordering
  1. In this case, cart allows products from only one store to be added.

  2. After adding products from one store, if the user tries to add products from another store, he/she is asked if the cart should be cleared before adding the new products [from another store].

  3. On confirmation, all the products from the first store are removed from the cart and the product from the new store is added.

  1. Multi-Store Ordering

  1. In this case, cart allows products from multiple stores to be added.

  2. Users can see the products together by stores inside the cart.

  3. Each store’s minimum order value must be met individually to be able to place the order.

Taxes

Taxes are calculated, and added to the payment breakdown for a user in the cart. They are set up by the system admin for each city and are applied to the products. Tax amounts are calculated as a percentage of the product price.

Order Type

Grocer offers two options to get the order:

  1. Pickup
  1. In this case the user needs to go to the store to get his order.
  2. User can navigate to the store from the order details page.
  1. Delivery
  1. In this case the user selects a delivery address while placing an order, and a driver is assigned to pick up the order from the store, and deliver it to the selected address.
  2. Once an order is assigned to the driver, the user can track the driver in real time from the order details page.

Saved Addresses

A user can add, and save unlimited addresses to his/her account and mark them Home, Work or Other. Addresses tagged as Other can also have a name, for example – Grandma’s House, James Apartment, Lisa’s Condo etc

This helps in reducing the time for checkout as the user can easily tap on one of the saved addresses instead of adding the address every time he wants to place an order on the application.

Payment Options

A user can choose from the different options available for making a payment for the order :

  1. Card Payments:A user can pay for the order with his credit cards. Card payments are supported by integrating payment gateways. Grocer is capable of supporting payments in almost all countries and cities with payment gateways like Stripe or PayGate. Additional gateways can also be integrated in the system.
  2. Cash Payments : A user can also pay by cash to the driver when the order is delivered to him/her.
  3. Wallet Payment : A user can recharge the Grocer Wallet using credit cards and make payments for the orders.

Card Payment Authorization

If the payment gateway allows, the system first makes sure the card being used has enough balance to pay for the order. In case the card has in-sufficient balance or has expired etc. then the system will not allow the order to go through. This is a great feature to ensure all cards being used are valid and the payments are guaranteed.

Coupon codes

Coupon Codes are a great way to attract more users to ordering from the application by giving them discounts when the coupons are applied to orders.

  1. The cost of a coupon code is borne by the platform and the discount is adjusted against the app’s earnings.
  2. A user can either input a coupon code, and apply the same to the order, or just choose one from the list of coupon codes on the app.
  3. With the configurations in place for the usage each coupon code created, the users can’t abuse it.

My Order History

A user can track all his active and past orders in the my orders/ history section.

  1. Active Orders: All orders placed by the user that are not either delivered or cancelled show up under this section. The order statuses get updated in real time and a user can click on an order to see the order details and also track the order/ driver live on a map.

A user can also chat with the driver to either help him edit the order or find directions to the delivery address.

For an active order, a user can raise a support ticket via the Zendesk integration available on the application.

  1. Past Orders: All the orders placed by the user that are completed, cancelled, or expired show up under this section. The user can click on an order to see the order details, and a user can also re-order the same set of products again with just a single tap.

Real Time Tracking

We have our own proprietary tech stack for real time tracking (track all drivers in real time, track the driver live on the map once the driver is assigned, track live on the mobile app, and also on birds view).

Order Review & Ratings

Review and Ratings is a business-critical feature as it allows the app owners, store owners, and fleet manager’s/operations managers to receive feedback from the customers and work on them to improve the business.

  1. On a successful delivery or pickup, a user is presented with different parameters and 5 stars for each parameter on the app to choose from.
  2. Along with stars, each parameter also has attributes a user could select to better define his/her experience
  3. The system admin can configure the parameters that are presented to the user.
  4. Each parameter can be tagged with either the order or delivery, this helps the review and rating submitted by the user to be associated with the store or the driver and thus, successfully generate a Store Rating and Driver/Delivery Rating.
  5. The Ratings from each order are collected to find an Average Rating for a Store and an Average Rating for a Driver.

Multi language Support

To access content on the application in different languages, the user can switch between the languages from the “Language” section under the Profile Tab.

The labels on the application can be updated from Oneskyapp.com in real-time for iOS, while for Android, and the website the updated language files needs to be re-built into the code.

Store Application

Store managers are users that manage the orders for a store – create, accept/reject, update the details of the order, including the time and order items, assign an order to a specific driver or dispatch it to all the online drivers in a round-robin fashion.

  1. Supports Login with Phone Number, and Email Address.
  2. Users are signed up by the store owners on the Store CMS Panel or on the System Admin by specifying the basic details.
  3. Each store can have multiple active managers simultaneously.
  4. Reset password via email address, or phone number.

 Available on: iOS, Android, and Web

Home Page - Order and Dispatch Management

The store application is an excellent tool for managing orders, dispatching them to the drivers, edit or update orders, and managing failed dispatches. The functioning of the store application is flexible and can be configured with the following parameters :

  1. Type of Driver: Each store can be associated with one out of two types of drivers :
  1. Store Drivers: Drivers that are salaried and associated with a single store.
  2. Freelance Drivers: Drivers that are not associated with a specific store, but to service zones, and can fulfill orders from any store in the zones.
  1. Auto Accept: If this parameter is enabled for a store, any order that is placed for the store gets automatically accepted. If disabled, the manager is given an option to accept/reject the order, and if not accepted in time, the order expires.
  2. Auto Dispatch: If this parameter is enabled for a store, any order that is accepted by the store (manually or automatically) gets automatically dispatched. If disabled, the manager is given an option to manually assign the order to a driver from a list of available drivers [valid for store drivers only] or dispatch the order to all the drivers.

Different combinations that could be configured for the above-mentioned parameters are :

  1. Freelance Driver + Auto Accept Enabled + Auto Dispatch Enabled
  2. Freelance Driver + Auto Accept Disabled + Auto Dispatch Enabled
  3. Store Driver + Auto Accept Enabled + Auto Dispatch Enabled [Available with store drivers addon]
  4. Store Driver + Auto Accept Disabled + Auto Dispatch Enabled [Available with store drivers addon]
  5. Store Driver + Auto Accept Enabled + Auto Dispatch Disabled [Available with store drivers addon]
  6. Store Driver + Auto Accept Disabled + Auto Dispatch Disabled [Available with store drivers addon]

In case 1. and 2., if none of the drivers accepted the order, it is promoted to the Central Dispatcher, who could manually assign the order to a driver from the list of drivers available.

Driver Assignment Override: Un-assign an order from a driver and assign it to another driver to allow fulfillment of orders in case the first driver is unable to deliver the order.

A store manager can do this only if the store has chosen “Store Drivers” to make the delivery, and this option is not available if the store gets the order fulfilled through “Freelance Drivers”

Order Details Page

Each order can have the following information or actionables based on the status of the order:

  1. Order Status
  2. Customer Details
  3. Payment Type
  4. Store Details
  5. Driver Details for Assigned Order
  6. Order/Cart Details – Products/ Products ordered by the customer with payment breakdown
  7. Edit order

Store Manager Profile

All the details about the store manager can be found on the driver profile page:

  1. Picture of the manager
  2. Name
  3. Phone Number
  4. Email Address
  5. Store Name
  6. Logout

Order History

A store can find all the orders that have been completed, rejected, cancelled, or expired under one tab. Each order on the list shows the following:

  1. Order ID
  2. Order Time
  3. Customer Name
  4. Order Amount

Clicking on an order gives the following details:

  1. Customer Name
  2. Order Type
  3. Order Details
  4. Payment Breakdown
  5. Driver Details [in case of delivery]
  6. Earning of the Store from the order.

Account Statement

Account Statements reflect all the transactions done for a store. It keeps a record of all the cash collected by the store drivers, the money owed to the store by the app for credit card / wallet bookings.

The closing balance of this system indicates the money owed by / to the store. If the balance is negative then it means that the app owes money to the store and if the balance is positive then it means that the store has excess cash and has to pay the app, the app’s commission for all the cash orders.

Inventory

A store manager can manage the product visibility on the customer application directly from the store app. Search allows the user to search from the list of products seamlessly and enable/disable a product.

Real-time order Updates

The store manager receives new orders, order updates from the driver applications, cancellations, and order expiry notifications in real time along with push notifications when the app is in the background.

New Orders are received on the application with a loud sound to make sure orders don’t go unaccepted.

Driver Application

Login/Signup

Our system offers the flexibility of facilitating order delivery through one of the two drivers types:

  1. Store Drivers
  1. Store Drivers are the drivers that are associated with a specific store and receive & deliver orders only for that specific store. A store can always switch between Freelance Drivers and store Drivers to dispatch their orders from the Store CMS Panel.
  2. Supports Login with phone number and email address.
  3. Drivers are registered by the store owners or managers from the store CMS Panel and can be assigned to one or more than one zones serviced by the store.
  4. Drivers can’t access the application before the verification of their documents by the store owner or manager. Once the documents are thoroughly checked, the store owner or manager can approve the driver profile which will allow the driver to sign in on the driver application and mark himself available for receiving orders.
  5. Passwords for the drivers can be reset via registered phone number or email address.
  1. Freelance Drivers
  1. Freelance Drivers are drivers that can deliver orders received from more than one store and are not bound to a specific store. A store can always switch between Freelance Drivers, and store Drivers.
  2. Freelance Drivers support login with a phone number and email address.
  3. Drivers can register themselves by filling up a detailed registration form on the driver application and they can also submit important documents like their Drivers License, Identity Proof etc. on the application.
  4. Drivers can’t access the application before the verification of their documents by the system admin. Once the documents are thoroughly checked, the system admin can approve the driver profile which will allow the driver to sign in on the driver application and mark himself available for receiving orders.
  5. Passwords for the drivers can be reset via registered phone number or email address.

Document Expiry Checks

If any document that is business critical like the driver’s license expires, the driver will not be allowed to use the app till they update these documents. This ensures that the app does not get into any legal hassles.

Home page Assigned Orders

Driver Presence: A driver can make himself available / unavailable for receiving orders by Going Online / Going Offline using the button on the top of the page.

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

A driver is assigned an order directly, or receives an order request giving him an option to either accept the order or reject it. 

The assigned orders list shows all the orders assigned to driver and each order consists of the following components :

  1. Order Status
  2. Delivery Fee
  3. Order ID
  4. Delivery Date & Time
  5. Store Name & Address
  6. Customer Name & Address
  7. Order Date & Time
  8. Order Type

When the driver clicks on the order, the following details are shown [Details vary with each status]:

  1. Order ID
  2. Order Status
  3. Customer Name
  4. Call the Customer
  5. Chat with the Customer
  6. Store Name & Address
  7. Call the Store
  8. Delivery Address
  9. Payment Type
  10. Order/Cart Details – Products/ Products ordered by the customer with payment breakdown
  11. Update the order Status
  12. Navigation to the Store or Customer

Multiple Deliveries

Drivers can accept and deliver more than 1 order on the app so that a store can dispatch multiple orders to a driver to optimize the deliveries and save on fuel cost.

A driver can accept, and deliver an order for ‘X’ address, and at the same time make a delivery to another address close to the previous address, or on the way to the third order delivery address. Store will receive real time updates for all the 3 orders on the same app, and so will the customers associated with each of the three orders.

Customer Signatures

To ensure the delivery of an order, as a method of double hand shake, a driver can’t complete an order on the application without taking the customer signature on it.

These signatures are stored with the order and can be accessed later for dispute handling.

Driver Profile

All the details about the driver can be found on the driver profile page :

  1. Picture of the Driver
  2. Name
  3. Phone Number
  4. Email Address
  5. Password - Option to Change the Password
  6. Driver Commission Plan [Valid for Freelance Drivers only]
  7. Store Name [Valid for Store Drivers only]
  8. Logout

Order History

A driver can find all the orders that he/she has completed or cancelled under one tab. Each order on the list shows the following :

  1. Order ID
  2. Order Time
  3. Customer Name & Address
  4. Store Name & Address
  5. Delivery Fee

Clicking on an order gives the following details :

  1. Order Type
  2. Store Name & Address
  3. Customer Name & Address
  4. Order Details
  5. Payment Breakdown
  6. Payment Method
  7. Earning of the Driver from the order.
  8. Order Status

The page also shows a chart visualizing weekly earnings of the driver.

Account Statement

Account Statements reflect all the transactions done for a driver. This keeps a record of all the cash collected by the driver, the money owed to the driver by the app for credit card / wallet bookings. The closing balance of this system indicates the money owed by / to the driver. If the balance is negative then it means that the app owes money to the driver and if the balance is positive then it means that the driver has excess cash and has to pay the app, the app’s commission for all the cash orders. A soft limit and hard limit is set for each driver. The limit indicates the cash in hand for the driver. If the driver’s hard limit is hit, then the driver will not receive any more cash orders till they clear their dues. This is a good way to restrict risk per driver.

App Reskinning 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 share messages, etc

App Installation Service

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

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.

Business Analytics and Reports included in MIS

  1. Financial reports for:
  1. Customer Account Statements
  2. Driver earnings
  3. App earnings
  4. Payment gateway spend
  5. store dues
  1. Order reports for:
  1. Completed Orders
  2. Estimates generated
  3. Cancelled Orders
  4. Expired Orders .
  1. Promo code consumption reports
  2. Promo campaign reports
  3. Referral campaign reports
  4. Driver performance reports that include acceptance rate, average rating.

System Admin

Dashboard

Powered by the data from the entire platform, the dashboard visualizes different Key Performance Indicators for the platform using charts, graphs and tables. All the visualizations are filterable by date range.

Payment gateways

Define and manage multiple payment gateways and the transaction fees levied by each one of them.

The transaction fee could be a fixed fee, or a percentage of the transacted amount.

Tax Setup

Define and manage multiple taxes that could be levied on the products in each city.

City Setup

Define and manage multiple cities and zones. Delivery fee (Mileage pricing) parameters are also configured in the city setup.

Dispatch Users

Create, configure and manage user logins and statuses of dispatch users for stores or a city. The users created in this section can login into iOS, Android, and web apps for a store and city to manage the orders.

App Settings

Manage global app settings for language, app version, dispatching, live tracking, etc.

  1. Language: Enable, Disable multiple languages on the platform. Each language enabled adds an additional field for data input for each component on the platform.
  2. Versions: Defines the active versions of each application on the platform. Allows system admin to inform users about updated versions and if a version is mandatory update or not.
  3. App Configuration: Configure parameters for order dispatching, live tracking, product feed, driver presence, etc.

Product Setup

Create and manage different components associated with and needed for adding products to the platform.

  1. Product Categories: Create, update, and delete product categories for the central products.
  2. Store Product Categories: ​​Create, update, and delete product categories for the store products.
  3. Franchise Product Categories: ​​Create, update, and delete product categories for the franchise products.
  4. Brands: Add, update, and delete brands that could be used while adding products.
  5. Manufacturer: Add, update, and delete manufactures that could be used while adding products.

Products

Create, update, import, and delete products from the central or store inventory.

  1. Central Products: Products available in the central product inventory.
  2. Store Products: Products associated with different stores.

Store Setup

Add, update and manage, store categories, stores, app commission charged to each store, and drivers associated with each store.

  1. Stores:​ ​Create, update, delete stores and manage various store configuration affecting the ordering workflows.
  2. Store Commission: ​​Define and update commission earned by the app from each active store. Commision can either be fixed or percentage of the total value of the ordered products.
  3. Store Drivers: Create, update, manage, and delete drivers associated with a specific store. They can be associated with one of the following statuses:
  1. New: Drivers that have been registered but have not been approved for servicing orders.
  2. Approved: Shows the drivers whose profiles have been approved by the System Admin and are available for servicing the orders.
  3. Rejected: Drivers whose profiles have been rejected by the System Admin.
  4. Banned: Drivers who have been banned from the system either because of unpaid dues or misconduct while servicing the orders.
  5. Timed Out: Drivers who have been timed out from the system due to loss of internet connection or dead battery.
  6. Online: Drivers who are logged in and have marked themselves available for receiving orders from the stores.
  7. Offline: Drivers who are either logged in and have marked themselves unavailable for receiving orders or have been timed out of the system.
  8. Logged​​Out: Drivers who have either been manually logged out or have logged themselves out.

Customers

This section captures the details of each guest and registered user on the customer application and website. Details about the carts of the registered users along with modifications made are also highlighted in this section

Drivers

Create, update, and manage freelance drivers [Drivers not associated with any stores], driver plans and review the acceptance rating for each driver.

  1. Drivers

Create, update, and manage freelance drivers. They can be associated with one of the following statuses:

  1. New: Drivers that have been registered but have not been approved for servicing orders.
  2. Approved: Shows the drivers whose profiles have been approved by the System Admin and are available for servicing the orders.
  3. Rejected: Drivers whose profiles have been rejected by the System Admin.
  4. Banned: Drivers who have been banned from the system either because of unpaid dues or misconduct while servicing the orders.
  5. Timed Out: Drivers who have been timed out from the system due to loss of internet connection or dead battery.
  6. Online:Drivers who are logged in and have marked themselves available for receiving orders from the stores.
  7. Offline:Drivers who are either logged in and have marked themselves unavailable for receiving orders or have been timed out of the system.
  8. Logged​​Out: Drivers who have either been manually logged out or have logged themselves out.
  1. Driver Plans: Create, update and manage driver plans which when associated with a driver defines the commission earned by the app from each delivery made by the driver.
  2. Driver Acceptance Rating: Captures the number of orders accepted, rejected, and ignored by the driver and calculates a rating.

Estimates

This section captures the order estimate before the order is placed/confirmed by the customer and includes the total value of the order with delivery fee calculations.

Orders

This section captures the active and completed orders on the platform and list the details of each order like customer details, payment details, order break down, driver details, etc.

  1. Dispatch: Orders that are currently active and have not been completed, cancelled, rejected or expired.
  2. All Orders: All orders under different statuses on the platform. Different order statuses under this section are as follows :
  1. New: Orders that have been placed by the customers and are yet to be accepted by the store.
  2. Unassigned:Orders that have been accepted by the store but have not been assigned to a driver.
  3. Assigned: Orders that have been assigned to a driver and are in the process of delivery to the customer.
  4. Completed: Orders that have been successfully delivered, picked up, expired, cancelled or rejected.

Product Offers

Create and manage offers on products listed for different store, the discount offered on the product is determined by the percentage defined in the offer configuration.The discounts could be:

  1. Percentage​​ Discount on the price of the product/ dish.
  2. Fixed Value Discount

Offer Redemptions

This module provides detailed analytics for the offers created, and consumed by the customers while making a purchase. This is highly important to understand the impact of an offer over a particular period of time and is useful for generating marketing reports.

  1. Each time an order is made with products that have discounts on them and completed (successfully delivered or picked up), it is logged under the redemption of the offer.
  2. Each redemption record gives the following information:
  1. Offer ID
  2. User ID
  3. Total Discount Offered
  4. Date and Time for the Offer Redemption

Financials

View all the financial details for all orders processed on the platform.

  1. Accounting: Orderwise breakdown of payments for and earnings from each order for each entity on the platform.
  2. Account Statements: A financial ledger for the platform, payment gateway, customer, driver, and stores.
  3. Stripe Logs: Logs from Stripe of all the activities initiated from the platform.
  4. PayOff: Pay stores and drivers from the parent stripe account to the stripe connected accounts.

Account Statements

The system is equipped with the following account statements to better manage the distribution of money between the various entities involved in an order.

  1. Customer Statement– This will reflect all the transactions done by a customer on the app. All payments made by cash / card and all wallet credits / debits. This statement gives the app a report of all the customers spend on the app. This wallet is also used to store pre-paid money and can also be used to receive loyalty points and any adjustments made by the admin for a past order. A manual credit/debit option exists here to make any adjustments in the customer’s account for failed order, customer compensation etc. This also preserves any payment due from the last order or cancellation of a cash order.
  2. Driver Statement– This will reflect all the transactions done for a driver. This keeps a record of all the cash collected by the driver, the money owed to the driver by the app for credit card / wallet bookings. The closing balance of this system indicates the money owed by / to the driver. If the balance is negative then it means that the app owes money to the driver and if the balance is positive then it means that the driver has excess cash and has to pay the app, the app’s commission for all the cash orders. A soft limit and hard limit is set for each driver. The limit indicates the cash in hand for the driver. If the driver’s hard limit is hit, then the driver will not receive any more cash orders till they clear their dues. This is a good way to restrict risk per driver. A manual credit/debit option exists here to make any adjustments in the driver’s account for failed orders, driver compensation etc.
  3. App Statement– This statement indicates the earnings made by the app for each order made. 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.
  4. Payment Gateway Statement– 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.
  5. Store Statement– This will reflect all the transactions done for a store. This keeps a record of all the cash collected by the store drivers, the money owed to the store by the app for credit card / wallet bookings The closing balance of this system indicates the money owed by / to the store. If the balance is negative then it means that the app owes money to the store and if the balance is positive then it means that the store has excess cash and has to pay the app, the app’s commission for all the cash orders. A manual credit/debit option exists here to make any adjustments in the stores’ account for failed orders, driver compensation etc.

Order Invoices

Order Invoice are records of the payments made and the earnings accrued on each order by all the entities involved in an order.

The following is calculated for each order:

  1. App Earnings: Calculated from the Store Commission received from the store, the Delivery Commission received from the driver, Payment Gateway commission or Payment Transaction Cost, Discount offered to the customer.
  2. Payment Gateway Earnings:The payment gateway charges for each transaction varies from one payment gateway to another and constitutes the Payment Gateway Earnings.
  3. Store Earnings:Calculated from the amount left after paying the commission to the app, taxes levied on the products, and store discounts offered on the products.
  4. Driver Earnings: Calculated from the delivery fee left after paying the delivery commission to the app and the tip earned from the customer.

Store /Store Payouts

  1. The system generates a daily report for orders processed by all the stores and generates a report for the amount of money:
  1. Due to stores
  2. To collect from stores
  1. The System Admin can initiate a payment directly to the store’s attached bank account (in case the payment gateway is stripe.com). For stores who owe money to the app, the admin can update the store’s wallet when they manually collect the money from the stores.

Driver Payouts

  1. The system generates a daily report for the rides taken by all drivers and generates a report for the amount of money:
  1. Due to drivers
  2. To collect from drivers
  1. The System Admin can initiate a payment directly to the driver’s attached bank account (in case the payment gateway is stripe.com). For drivers who owe money to the app, the admin can update the driver’s wallet when they manually collect the money from the drivers.

Marketing

Includes a bunch of features like loyalty campaign, referral campaign, coupon code, bulk push notifications, etc. Marketing components are really helpful with customer acquisition, retention, and remarketing.

Coupon Codes

  1. The cost of coupon codes is borne by the app company and the discount will be adjusted against the app’s earnings.
  2. The configuration settings for the promo code include:
  1. City (Which city the coupon code can be consumed in, delivery address for the order must be inside the city)
  2. Order Type (You can configure it work with either a pickup order or delivery order)
  3. Payment Method (coupon code is valid only for the selected payment method so you can create a coupon code only for people ordering with their credit card or in app wallet)
  4. Discount Type
  1. Fixed Value
  2. Percentage Value
  1. Total claim count for the coupon code
  2. Number of claims allowed per user
  1. Analytics are available for which order the coupon code was applied to.
  2. Security checks are in place to make sure the coupon code cannot be abused.

Ratings

Define parameters for customers to rate their experience on the platform for every order and generate average ratings for stores, and drivers on the platform.

Mail and SMS Logs

Logs of all the text messages and emails invoked by platform at various trigger points.

Manage Access

Create, Update, and Manage user access and roles (defining what each role / user could access) for the Superadmin.

App Content

  1. Set cancellation reasons for customers, drivers, and stores with language support for additional languages.
  2. Set FAQ text for customers, drivers, and stores with language support for additional languages.
  3. Manage the content for Terms & Conditions, and Privacy Policy for drivers, customers, and stores.
  4. Manage the content for About Us, and Contact Us for the website

Store Admin

Dashboard

Powered by the data from the store, dashboard visualizes different Key Performance Indicators for the store using charts, graphs and tables. All the visualizations are filterable by date range.

Store Profile

Update details about the store and configure order acceptance & dispatch settings, cart related parameters, etc.

Working Hours

Define and manage the working hours for a store which determine the opening and closing of a store on the customer app and website.

Store Managers

Create, configure and manage user logins and statuses of dispatch users for stores. The users created in this section can login into iOS, Android, and web apps for a store and manage the orders.

Product Categories

Create, update, and delete product categories for the store products.

Products

Products listed with the stores, store owners can update the product details, deactivate them or remove them completely if needed.

All Orders

All orders under different statuses on the platform. Different order statuses under this section are as follows :

  1. New: Orders that have been placed by the customers and are yet to be accepted by the store/ store.
  2. Unassigned:Orders that have been accepted by the store but have not been assigned to a driver.
  3. Assigned: Orders that have been assigned to a driver and are in the process of delivery to the customer.
  4. Completed: Orders that have been been successfully delivered, picked up, expired, cancelled or rejected

Offers

Create and manage offers on products listed with the store, the discount offered on the product is determined by the percentage defined in the offer configuration.

Account Statement

This will reflect all the transactions done for a store. This keeps a record of all the cash collected by the store drivers, the money owed to the store by the app for credit card / wallet bookings The closing balance of this system indicates the money owed by / to the store. If the balance is negative then it means that the app owes money to the store and if the balance is positive then it means that the store has excess cash and has to pay the app, the app’s commission for all the cash orders. A manual credit/debit option exists here to make any adjustments in the stores’ account for failed orders, driver compensation etc

Store Customers

Customers created from the store web dispatcher are shown under this section, these customers are not visible in the customer search for In-Store orders to stores other than the one the customer was created in.

Advanced Feature Modules (optional extras)

The following feature modules are also available for an additional cost which can be quoted separately.

Customer Website

Grocer’s website is built on ReactJS which is used by a number of large companies including Facebook, Netflix, AirBNB, DropBox, IMDb, PayPal, Tesla Motors,​​Walmart and many others.

We have developed this ReactJS website with the Next.js which is a minimalistic framework for server rendered React Application that brings many benefits to the table like website is server-rendered by default, automatic code splittingfor faster page loads, improved SEO on Google, DuckDuckGo, Bing, Yahoo, or Baidu etc, faster development with Hot Module Replacement Support.

  1. The website is SEO ready and has support for Alt-Tags, Keywords, Site Map Generation.
  2. Loads at a lightning fast speed with server rendering
  3. Images are delivered through Amazon’s Content Delivery Network, Cloudfront which adds to the speed of the website without compromising on the quality of the images.
  4. The website is fully mobile and tablet responsive and support all browsers.
  5. The website replicates the same set of features as available on the customer application.

Login/Signup

  1. Supports Login/Signup with Phone Number
  2. Supports Social Login/Login with Facebook & Google.
  3. Retrieve password via phone number.
  4. Unique Verification code sent to the user’s email or phone number ensures quick and seamless experience for Signup and Password Retrieval process.

Guest User: A user can explore the website without signing up or logging into the website. Login is necessary only if the user wants to perform user specific actions like accessing saved cards, saving addresses, placing an order.

Store Listings

The store listing page shows all the stores serving to the user’s location and the different components on this page are as follows :

  1. Search : Powered by Elasticsearch, store search allows a user to search for a specific store from the list of stores available under the selected category at the customer’s selected location. There is also a provision to filter the store based on one of the following parameters :
  1. Cost for Two
  2. Cuisines
  3. Store Ratings
  1. Offer Banners: Offers Banners from all the stores can be seen on the top of the page. Clicking on the banner enlists the products that have been discounted under the offer.
  2. Favorite Stores: All the stores marked favorite by the user start appearing on the top of the listing page for the user.
  3. Stores : Each store has the following components :
  1. Store Logo Image
  2. Store Name
  3. Sub Category
  4. Area
  5. Store Offer
  6. Store Ratings
  7. Store’s distance from the customer’s location
  8. Minimum Order Value
  1. Global Product + Store Search: The most convenient search option for a user is to simply do a global search. The search query typed by the user is used to find stores and dishes that match with it and both the results are presented together on the same page.
  2. Cart:User can switch to his cart at any point of time, and check out the items added to his cart.
  3. My Orders: All the orders, active and completed, can be reviewed under this tab.

Search, Filters and Sorting

Filters are available in the search results, product listings for category, sub – categories, Trending Products, Everyday Lowest Prices, Product Listings for a Brand.

Products can be filtered based on the following parameters:

  1. Product Category
  2. Sub-Category
  3. Sub–Subcategory
  4. Brand
  5. Manufacturer
  6. Price Range
  7. Offers

Sorting of the products can be done in the following ways:

  1. Newest Product First
  2. High-to-Low Price
  3. Low-to-High Price
  4. Popularity

Store Page

Each store has its own page allowing users to explore the store categories, brands, trending products, favorite a store, search for a specific product inside the store. The components are as follows :

  1. Store Details: The details include :
  1. Store Logo Image
  2. Store Name
  3. Sub Category
  4. Area
  5. Store Offer
  6. Store Rating
  7. Store’s distance from the customer’s location
  8. Minimum Order Value
  1. Favorite: A user could mark a store favorite, and for the ease of access it starts appearing on the top of the store listing page only for the user.
  2. Store Search:A user could search for a product inside a specific store and filter them based on one of the following filters:
  1. Brand
  2. Manufacturer
  3. Category
  4. Sub Category
  5. Price Range

User can also apply one of the following sorting options to the search result:

  1. Price High to Low
  2. Price Low to High
  3. Popular First
  1. Trending Products: To show a list of top 10 Trending Products from a store we use a smart algorithm built with Python to understand the product trends for each store based on the number of times a product was added to a cart, purchased, wish-listed, favorite and view in a given interval of time, etc.
  2. Brands:The brands of the products listed with the store are shown on the store page and clicking on a brand leads to a page that lists all the products under the selected brand.

Product Description Page

Each product has a PDP, and it allows the user to explore the pictures, details, share it, add it to the cart, update the quantity available in the cart, etc.

  1. Pictures: A user can browse through multiple pictures of a product and expand to full screen mode for a better view.
  2. Favorite: A user, when logged in, can mark a product favorite. This provides ease of access to it from a vast list of items and a quicker checkout process.
  3. Smart Product Sharing: A deep link for a content is a link that directs the user past the home page of an application directly to the content. The link is generated from the page itself, in our case PDP. A user can generate a Deep Link for the product and share it on:
  1. Facebook
  2. Google +
  3. Twitter
  4. WhatsApp
  5. Email
  6. SMS
  7. iMessages, and other social media, sharing or messaging platforms.
  8. When another user [who received the shared link ] clicks on it, one of the two things happen:
  1. If he/she already has the Grocer application installed on his/her mobile, he/she will be taken directly to the shared product’s page on the application.
  2. If the user doesn’t have the Grocer application installed on his/her mobile, he/she will be taken to the Apple Appstore or Google Playstore to download the application.
  1. Pricing: Shows the original and discounted price of the product [in case there is no discount on the product, only one price is visible]
  2. Details: Different information about the product like description, ingredients, nutritional values, etc are shown for each product[driven by the input on the CMS Panel, each product could have different details]
  3. Unit: A user can choose from different units/variations available for the products, each unit has a different price associated with it. Therefore, when a user clicks on a unit, the pricing section also changes.

Cart Page

Components of the cart page :

  1. Store Logo
  2. Store Name
  3. Area Name
  4. Cart Value Status:While adding, removing or updating a product the delivery fee status line shows the following :
  1. Amount difference between the current cart value and the minimum order value
  2. Amount difference between the current cart value and the threshold order value for free delivery.
  1. Products:All the products added to the cart can be viewed on the cart page and users can update their quantity, or delete them from the cart.
  2. Additional Notes : A user can attach additional information like the ‘Please add less sugar to my coffee’, or ‘Leave the package at the front door ’ with order using additional notes.
  3. Final Total: The total value of the cart including the individual subtotals of each store in case of a multiple store cart situation.
  4. Your Savings: The cart also shows the user his/her savings from the products added to the cart.

Multi-Store Cart Ordering

  1. As mentioned briefly in the last section, the cart can be configured [configuration is done at the store category level] to support two different ways of ordering. :
  2. Single-Store Ordering
  3. In this case, cart allows products from only one store to be added.
  4. After adding products from one store, if the user tries to add products from another store, he/she is asked if the cart should be cleared before adding the new products [from another store].
  5. On confirmation, all the products from the first store are removed from the cart and the product from the new store is added.
  6. Multi-Store Ordering
  7. In this case, cart allows products from multiple stores to be added.
  8. Users can see the products clubbed together by stores inside the cart.
  9. Each store’s minimum order value must be met individually to be able to place the order.

Taxes

Taxes are calculated, and added to the payment breakdown for a user in the cart. They are set up by the system admin for each city and are applied to the products. Tax amounts are calculated as a percentage of the product price.

Order Type

Grocer offers two options to get the order :

  1. Pickup
  1. In this case the user needs to go to the store to get his order.
  2. User can navigate to the store from the order details page.
  1. Delivery
  1. In this case the user selects a delivery address while placing an order, and a driver is assigned to pick up the order from the store, and deliver it to the selected address.
  2. Once an order is assigned to the driver, the user can track the driver in real time from the order details page.

Saved Address

A user can add, and save unlimited addresses to his/her account and mark them Home, Work or Other. Addresses tagged as Other can also have a name, for example – Grandma’s House, James Apartment, Lisa’s Condo etc

This helps in reducing the time for checkout as the user can easily tap on one of the saved addresses instead of adding the address every time he wants to place an order on the website.

Payment Options

A user can choose from the different options available for making a payment for the order :

  1. Card Payments: A user can pay for the order with his credit cards. Card payments are supported by integrating payment gateways.
  2. Cash Payments : A user can also pay by cash to the driver when the order is delivered to him/her.
  3. Wallet Payment : A user can recharge the Grocer Wallet using credit cards and make payments for the orders.

Card Payment Authorisation

If the payment gateway allows, the system first makes sure the card being used has enough balance to pay for the order. In case the card has in-sufficient balance or has expired etc. then the system will not allow the order to go through. This is a great feature to ensure all cards being used are valid and the payments are guaranteed.

Coupon Codes

Coupon Codes are a great way to attract more users to ordering from the website by giving them discounts when the coupons are applied to orders.

  1. The cost of a coupon code is borne by the platform and the discount is adjusted against the app’s earnings.
  2. A user can either input a coupon code, and apply the same to the order, or just choose one from the list of coupon codes on the website.
  3. With the configurations in place for the usage each coupon code created, the users can’t abuse it.

My Orders / History

A user can track all his active and past orders in the my orders/ history section.

  1. Active Orders: All orders placed by the user that are not either delivered or cancelled show up under this section. The order statuses get updated in real time and a user can click on an order to see the order details and also track the order/ driver live on a map. For an active order, a user can raise a support ticket via the Zendesk integration available on the application.
  2. Past Orders: All the orders placed by the user that are completed, cancelled, or expired show up under this section. The user can click on an order to see the order details, and a user can also re-order the same set of products again with just a single tap.

Free Real Time Tracking

We have our own proprietary tech stack for real time tracking (track all drivers in real time, track the driver live on the map once the driver is assigned, track live on the mobile app, and also on birds view).

Order Review & Ratings

Review and Ratings is a business critical feature as it allows the app owners, store owners, and fleet manager’s/operations managers to receive feedback from the customers and work on them to improve the business.

  1. On a successful delivery or pickup, a user is presented with different parameters and 5 stars for each parameter on the website to choose from.
  2. Along with stars, each parameter also has attributes a user could select to better define his/her experience.
  3. The system admin can configure the parameters that are presented to the user.
  4. Each parameter can be tagged with either the order or delivery, this helps the review and rating submitted by the user to be associated with the store or the driver and thus, successfully generate a Store Rating and Driver/Delivery Rating.
  5. The Ratings from each order are collected to find an Average Rating for a Store and an Average Rating for a Driver.

Multi-language Support

To access content on the application in different languages, the user can switch between the languages from the “Language” section on the header.

Real-time Order Updates

The store manager receives new orders, order updates from the driver applications, cancellations, and order expiry notifications in real time.

New Orders are received with a loud sound to make sure orders don’t go unaccepted.

The order created follows the normal dispatching workflows as set on the store.

Central Web Dispatcher

Central Manager Login/ Signup

Central manager is a type of dispatch user that is associated with, and responsible for an entire city. He/she can manage orders for the stores connected to the freelance driver fleet. Central Managers can override the orders by unassigning / assigning the order from/ to a driver.

  1. Support login with the phone number and email address.
  2. Central Manager can be registered by the System Admin by specifying the basic details.
  3. Each city can have multiple active city managers using the dispatcher simultaneously.
  4. Passwords for the central managers can be resetted/changed by the System Admin from the Dispatch Users section.

Home Page Order and Dispatch Management

Central web dispatcher is an excellent tool for managing orders, dispatching them to the drivers, edit or update orders, and managing failed dispatches for an entire city.

  1. When a store connected with the freelance driver fleet dispatch an order and none of the drivers accepts the same, it is Promoted to the central web dispatcher.
  2. On clicking on the order, the drivers list pops up showing the online drivers available to fulfill the orders. The central dispatch can :
  1. Request : Sends a new order notification to the driver giving an option to accept / reject the order.
  2. Assign: When an order is assigned to a driver, he/she doesn’t receive an option to accept/reject the order, rather the assigned order lists gets updated with a new order.

Driver Assignment Override: Un-assign an order from a driver and assign it to another driver to allow fulfillment of orders in case the first driver is unable to deliver the order. 

A central manager can do this only if the store has chosen “Freelance Drivers” to make the delivery. He/she can’t manage an order for a store that is connected to the store driver fleet.

Order Details Page

Each order can have the following information or actionables based on the status of the order

  1. Order Status
  2. Customer Details
  3. Payment Type
  4. Store Details
  5. Driver Details for Assigned Order
  6. Order/Cart Details – Products ordered by the customer with payment breakdown
  7. Edit order

Order History

A store can find all the orders that have been completed, rejected, cancelled, or expired under one tab. Each order on the list shows the following :

  1. Order ID
  2. Order Time
  3. Store Name
  4. Customer Name
  5. Order Amount

Clicking on an order gives the following details :

  1. Customer Name
  2. Order Type
  3. Order Details
  4. Payment Breakdown
  5. Driver Details [in case of delivery]
  6. Earning of the Store from the order.

Multi language Support

To access content on the web-dispatcher in different languages, the user can switch between the languages from the “Language” section under the Profile Tab.

Real-time Order Updates

The central manager receives failed-dispatch orders, order updates from the driver applications, cancellations, and order expiry notifications in real time.

New Orders are received with a loud sound to make sure orders don’t go unaccepted.

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.

Multi Currency Support

Our app supports multiple currencies making the application ready for global usage and geographical expansion.

Additional Payment gateway

We can support more than one payment gateway on the same platform allowing the user to choose from the multiple options available, this is quite relevant when you want to expand the platform from one city to another city.

Payment Wallet

The wallet along with the cash and card payments allows easy payments, hassle free adjustments and coupled with the referral campaigns, promo campaigns and promo codes it also allows rewards to be credited easily to the customer in their wallets.

  1. A user can recharge their wallets via card payments.
  2. View their wallet balance
  3. View the past transactions done via the wallet
  4. Pay by wallet for orders.
  5. Paying by wallet gives a seamless checkout experience
  6. A user can receive rewards in terms of wallet credits.

Referral Campaigns

The referral campaign module is designed as a loyalty program with the trigger-workflow model. If certain criteria are met, then the reward workflow is triggered for both the new user and the user whose referral code was consumed. The configurations for the triggers are:

  1. City (Which city is the referral campaign for)
  2. Start and End date of the campaign
  3. Number of orders to be completed by the new user to unlock the reward.
  4. Total value of orders to be completed in the duration of the campaign by the new user to unlock the reward.
  5. Rewards are configured and set for both the new user and also the user who referred the user. This reward could be a wallet credit or promo code.

The workflows once the set criteria for the campaign are met, could be:

  1. Generate and release a promo code for both the new user and the user whose referral code was used.
  2. Credit the user’s wallet (both the referred user and the new user) with some money to be used on the app.

Analytics are available for:

  1. Orders qualifying the required criteria.
  2. Rewards unlocked.
  3. When the reward was claimed.

Loyalty Program

The loyalty program module is designed with a trigger-workflow model. If certain criteria are met, then the reward workflow is triggered for the user whose orders have met the criteria. The configurations for the triggers are:

  1. City
  2. Start and End date of the campaign
  3. Number of orders to be completed by the user to unlock the reward.
  4. Total value of orders to be completed in the duration of the campaign by the user to unlock the reward.
  5. Rewards are configured and set for the user who has placed the orders. This reward could be a wallet credit or coupon code. The workflows, once the set criteria for a specific program are met, could be:
  1. Generate and release a coupon code for the user who has placed the orders.
  2. Credit the users with some money to be used on the app.

Analytics are available for:

  1. Orders qualifying the required criteria.
  2. Rewards unlocked.
  3. When the reward was claimed.

Send Push Notifications Module 

System Admin can send notifications to Customers, Store/ Store Managers, and Drivers directly from the admin panel.

  1. These notifications are sent as Push Notifications to the devices of the users. The notifications can be sent to:
  1. Customers / Store Managers / Drivers in a particular city
  2. Customers / Store Managers / Drivers of a selected zone in a city
  3. To a selected set of Customers / Store Managers / Drivers
  4. To all Customers
  5. To all Store Managers
  6. To all Drivers
  1. System Admin can create coupon codes and push them to the Customers over push notifications using this module
  2. System Admin can inform Customers about the Loyalty Programs and Referral Programs via Push Notifications.

In-store Orders

A store manager can create new orders on behalf of the customers, create new store customers, add new addresses, etc. The components available on this module are as follows :

  1. Customer Details : This section is used to search for an existing customer or add a new customer.
  1. Phone : Search a customer by phone number
  2. Email Address : Search a customer by email address
  3. Name : Search a customer by name

If the customer is not found, the manager can fill in the above details and select him/her.

  1. Service Type:
  1. Pickup Order
  2. Delivery Order
  1. Delivery Address: Add a new address for the selected customer, or choose from the addresses available on the list.
  2. Order Time: The manager can either order for now or schedule an order for a later time.
  3. Order Details:In this section, the manager can browse the menu using category, sub category, sub-sub category filters, or search and add the products from the menu along with the add ons available for each product.
  4. Cart: All the added products are shown in the cart section with measure names and quantity. Manager can :
  1. Update the quantity
  2. Update the addons
  3. Remove the product completely.
  1. Payment: The most viable option in such an order workflow is cash, but if the user has cards saved on his account and agrees for the card to be used, the manager could choose the same and request for the delivery fee.
  2. Payment Breakdown: It includes the following components :
  1. Subtotal
  2. Delivery Fee
  3. Taxes
  4. Discount
  5. Grand Total
  1. Additional Notes: Any additional requests or information like “Beware of the dogs at the front gate”, “Don’t ring the bell”, etc from the customer should be added here.

Store Drivers

Create, update, and manage Store drivers. Store Drivers can only fulfill orders for only a specific store. They can be associated with one of the following statuses:

  1. New: Drivers that have been registered but have not been approved for servicing orders.
  2. Approved: Shows the drivers whose profiles have been approved by the System Admin and are available for servicing the orders.
  3. Rejected: Drivers whose profiles have been rejected by the System Admin.
  4. Banned: Drivers who have been banned from the system either because of unpaid dues or misconduct while servicing the orders.
  5. Timed Out: Drivers who have been timed out from the system due to loss of internet connect or not battery.
  6. Online: Drivers who are logged in and have marked themselves available for receiving orders from the stores.
  7. Offline:Drivers who are either logged in and have marked themselves unavailable for receiving orders or have been timed out of the system.
  8. Logged​​Out: Drivers who have either been manually logged out or have logged themselves out.

Birds View

  1. Track all drivers live on a map and follow them live as they move around the city.
  2. Driver device metrics are available to better manage driver fleet. Phone battery status, phone location services status, app version, are visible for each driver. For drivers their last location is updated so we know exactly where the driver is at any time.

Driver Tips

Customers who have ordered using a credit/debit card will be able to tip drivers upon order completion. The tip amount is directly credited to the driver’s account without the app taking a commission from it.

Live Chat with Support

Live Chat integrated for communicating with app support on both customer applications.

Zendesk Integration for Support Ticket Management

Zendesk is a powerful, flexible, and highly scalable customer service and engagement platform. It enables customer interactions for the support team over emails and chats.

  1. With Zendesk Integration users of the application can launch customer support tickets for general queries and grievances or for specific orders [both incomplete and complete orders].
  2. Customers can also mark the urgency of the issue along with the Subject while creating the ticket.
  3. Tickets generated by the customers appear under the “Help” Section on their Profile Tab
  4. Support Team can interact with the customers and resolve their issues from the Zendesk Support Executive Web Panel and also update the status of the tickets. The status is reflected in the customer application as well allowing the customer to keep a track of the ticket.

Zendesk is a beautifully simple system for tracking, prioritizing, and solving customer support tickets.

Inventory Module

This module allows the stores [Stores do not have inventory] to manage their inventory in real time, and sync with the purchases, and sales done on the app or offline at the store. The functionalities available under this module are as follows:

  1. Add, update and delete the inventory of products from the Store CMS Panel
  2. Review inventory logs to track inventory changes – Manual Add, Manual Delete, Offline Sale, Sale on App.
  3. Product listing on the customer application is always in sync with the inventory.

Bulk Import with CSV

Bulk import allows a seamless experience for the store owners or warehouse owners to upload the products/dishes on the system instead of uploading the details of each product/dish individually. A CSV file/ XLS file with all the details of the products can be uploaded on the product listing/ menu listing section of the Store/ Store CMS or Warehouse/Central Product listing/ Menu listing section, and the system adds them. These added products can immediately be seen on the customer application.

Bulk Import with Google Sheet

Bulk import allows a seamless experience for the store owners or warehouse owners to upload the products on the system instead of uploading the details of each product individually.

A Google Sheet Link with all the details of the products can be added to the product listing section of the Store CMS or Central Product listing section, and the system adds them. These added products can immediately be seen on the customer application.

Barcode Generation

This module generates a unique barcode for each product that is added to the system. The barcode generated follows the UPC and EAN barcode standards and hence is compatible with a wide range of barcode readers.

In-App Calling

App to app calling integrated using our custom WebRTC based calling module without using any 3rd party libraries like Quickblox etc.

Number Masking

Mask customer phone numbers so the driver does not see the number.

Driver-Customer Text Messaging

Our proprietary chat engine to power customer-driver in-app text messaging without using any 3rd party libraries like Quickblox etc.

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 also integrate Fabric into our apps so we monitor the apps at all times for crashes.

Slack Integration for Business Analytics

We have created our own slack bot which taps into the analytics framework we have setup on the system, so you can ask the BOT for information like how many rides did we do today? How much money did the app earn today? and the BOT would publish the answer on SLACK.

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. 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