Professional Documents
Culture Documents
Ideliver LW Rate Card
Ideliver LW Rate Card
Ideliver LW Rate Card
We want to make sure all our customers know that we walk our talk so we are open and actually even
encourage our customers to do a code review before they purchase our product. This is something that
no-one else in the market offers up-front.
Technical Differentiators
1. We have the most modern user interface at par with the big boys in the space like Swiggy ,
Careem , Talabat , Glovo , Deliveroo , Delivery Hero , Food Panda , Zomato , Doordash.
2. Product search powered by the lightning fast Elastic search engine which is what all the large
apps use today.
3. API’s written in pure Node.JS following the best industry guidelines as prescribed by Rising Stack
(they are the most popular Node.JS evangelists in the industry) , GoLang and in Python ( Django )
4. Only app in the market, built on the micro service architecture where we have also leveraged the
server-worker model for super scale and performance.
5. Leverages the API gateway based architecture for easily managing microservices.
6. gRPC support for managing communication between micro-services.
7. Kafka + Spark based analytics engine for in-depth data analytics.
8. Multiple database architecture:
a) Elastic search - For lightning fast search
b) Cassandra - For logging all user interactions and transaction ledger
c) MongoDB - Used as a data store
d) Spark - For data analytics
9. In-depth real time app monitoring of the Node.JS application to manage your server
infrastructure, again integrated with slack for easy access for your technical support team.
10. Docker support for vertical and horizontal scaling.
11. Only iOS apps in the market written in Swift 5 using the MVVM architecture; most other
providers write poor quality code.
12. Only iOS app in the market leveraging Rx-SWIFT for top notch asynchronous performance. This is
the tech that big apps like Go-Jek use.
13. Only Android apps in the market written using the clean architecture prescribed by Google (MVP
using Dagger 2).
14. Only Android apps in the market leveraging Rx-Java which top apps like Go-Jek and Uber use.
15. Most secure app infrastructure in the market where security extends from the mobile app to the
API’s. Use of keychain in iOS to store all credentials, SSL powered API’s, use of JWT for the
API’s, reverse proxy setup on the load balancer etc.
16. Only solution in the market that leverages python to make the system smart by providing the
users with trending products, popular searches and recommendations based on the data
generated by the usage of the applications.
SECURITY CHECKLIST
Most secure app infrastructure in the market where security extends from the mobile app to the API’s.
Banners
Offers
Image Gallery
Product Details
Inventory Availability
Cart Page
Inventory Checks
Taxes
Saved Addresses
Payment Options
My Orders / History
Unlimited Users
TOTAL PRICE FOR iOS and Android Apps and Admin Panel for Super Admin and stores -
USD $ 12,000
Login / Signup
In-Delivery
Order History
Account Statement
DRIVER APPLICATION
Login / Signup
Multiple Deliveries
Driver Profile
Order History
Account Statement
Offline Management
Return Management
Geo-Fence Deliveries
SYSTEM ADMIN
Dashboard
Payment Gateways
Tax Setup
City Setup
All Managers
App Settings
Product Attributes
Products
store Setup
Customers
Estimates
Orders
Product Offers
Offer Redemptions
Financials
Account Statements
Order Invoices
store Payouts
Coupon Codes
Ratings
Manage Access
App Content
Inventory Module
Barcode Generation
STORE/SUPPLIER ADMIN
Dashboard
store Profile
Working Hours
store Managers
Product Categories
Products
All Orders
Offers
Account Statement
stores Customers
Inventory Module
Barcode Generation
ADDITIONAL FEATURES:
FEATURE COST
Login / Signup
View drivers
Pricing will be at
22) Integration with POS ( Point Of Sale ) system.
actuals
23) Curbside Pickup $1000
Feature Explanation
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 or email.
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 apple, 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 user-specific actions like accessing saved cards, saving
addresses, placing an order.
Restaurant Listing
a) Recommended & Open - Stores are recommended currently based on the user’s
selected filters and are sorted based on distance.
b) Favorites - User’s can add some restaurants to their favorite list and those will be visible
under this section
c) Closed - Stores that are currently closed will be shown here,
1) Safety Standards - Restaurant’s that are following the highest safety standards as per
the government’s covid-19 protocol carry this extra badge against their listing
2) Cuizine
3) Distance from user’s location
4) Average rating given by users.
5) Best deal running in the restaurant.
Filters
Filters are available to further filter the restaurant listings based on the user’s preferences.
1) Cuizine - Users can select the cuisines they are looking to eat.
2) Price For 2
3) Average Rating
4) Location & Distance
Users can type in whatever they are searching for and the system search algorithm will return
matching dishes and which restaurant they are available in and will also list restaurants whose
name matches whatever the user has typed in.
Banners
Banners are created and are used as a way to promote certain restaurants. Restaurants can work with
the app and promote deals.
1. Banners are purely managed by the platform from the CMS panel.
2. Banners can found on the top of the home page
3. Multiple banners could be deployed at the same time.
1. About Restaurant
2. Restaurant Gallery
3. Restaurant Timings
4. Restaurant Reviews
1. Favorite dishes
2. Recommended dishes based on time of day so the restaurant can set recommended dishes for
breakfast , brunch , lunch or dinner.
3. Categorized dishes
4. Dishes with images and with-out .
5. Discounted price in case of any active offers on the dishes.
Portions
Dishes are organized into portions. Portions can be priced different and the modifier prices can change
based on the portion. Example of a portion is :
a) Large Pizza
b) Medium Pizza
Addons / Modifiers
Restaurants can create modifiers from their admin panel. Modifiers are organized into groups. Add On
Group’s can be created for example - “Extra Toppings”. Inside every add on group there are add on’s. Add
On’s can be free or can attract an extra price added to the dish price.
Add On’s can also be priced differently based on the portion size.
The conditions applied for add on’s are as follows:
1) Minimum Add On’s that have to be selected
2) Maximin Add On’s that can be selected
3) Single select add on group
4) Multi select add on group
Offers On Dishes
DIshes can be searched for inside a restaurant. The search algorithm factors in text added into the
product description , add on’s , product name , category name and also matches the text typed with all
products / dishes available in the restaurant.
Cart Page
The details on the cart page are as follows:
1) Items in order.
2) Quantity per item in the order with an option to add more or remove item from order.
3) Tax applied on the order.
4) Savings in the order.
5) If order qualifies for free delivery the user will be informed.
6) Cart is created per restaurant and if the customer decides to select another restaurant , the
customer will have to clear the cart from the previous restaurant as the customer can only order
from one restaurant at a time.
1) Self-Pickup Order - If enabled users can pre-order and pickup the order from the restaurant.
2) Delivery Order - If enabled users can confirm a delivery address and have the order delivered
directly to an address of their choice.
Checkout Flow
After checkout the next step in the checkout process is confirming the delivery address. The following
conditions apply while selecting the address:
1) Delivery address should be in a zone that the restaurant can deliver to.
2) Delivery zones are setup in the admin and can be configured per restaurant from the admin.
1) Pay via credit/debit card - A user can pay for the order with his credit cards. Card payments are
supported by integrating payment gateways. The application is capable of supporting payments
in almost all countries and cities with payment gateways like Stripe, Braintree, MOL Pay, Payfort,
Conekta, Midtrans, Flutterwave etc. Other payment gateways can also be integrated in the
system.
2) Pay via in-app wallet - A virtual wallet that can be re-charged via an integrated payment gateway.
3) Pay via cash on order delivery - Pay cash directly to the driver at the time of delivery.
Confirm Order
Order Tracking
All orders active and past are visible on this page. Orders can be filtered by month or year or based on
status. Orders are listed per restaurant.
Order Details
Other Features
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.
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.
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.
a. Category of products.
b. Particular product/products.
c. Particular zones.
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. The system admin can configure the parameters that are presented to the user.
3. For every order , the parameters can vary and the user can leave a rating for each parameter..
4. The customer can also leave:
a. Review for the store that will be maintained on the backend for the app management to
maintain quality control.
We don’t use Pubnub (which is a bit expensive, can easily for over $100/month for 200 active devices,
and over $1000/month for 50,000 devices), and we don’t use Socket.IO (lot of battery drain and not
reliable). Our stack takes care of 100% message delivery, and is also free of charge for all our customers.
So a user never misses any order update, and a user can track drivers meter by meter.
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.
Login / Signup
Store managers are users that manage the orders for a store.
The restaurant manager application is an excellent tool for managing orders and dispatching them to the
delivery partners. The functioning of the restaurant application is flexible and can be configured with the
following parameters :
1. Auto Accept: If this parameter is enabled for a restaurant, any order that is received by the
restaurant gets automatically accepted. If disabled, the manager is given an option to
accept/reject the order, and the order is not confirmed to the customer till the order is
confirmed by the manager.
2. Auto Dispatch : If this parameter is enabled for a restaurant , any order that is accepted by the
restaurant (manually or automatically) gets automatically dispatched.
a) Pending/New Orders - This will show the restaurant manager all the new orders received. Once
an order is accepted a preparation time is added by the store manager to notify the user on the
delay in preparing the order.
b) Prepare - All orders that are accepted and are being prepared are shown here.
c) Ready For Pickup - All orders that are packed and ready for pickup by the driver are shown here.
d) In-Delivery - All orders that are picked up and are currently being delivered show up here.
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. Order/Cart Details – Products ordered by the customer with payment breakdown
New Orders
All new orders are visible on this tab. New orders have to be accepted to move to the prepare stage. The
manager can assign a preparation time for each order that will be used to notify the system when to
dispatch the order to the driver.
Prepare
Once an order is approved its moved to the “prepare” stage. It stays here till the meal is prepared by the
kitchen. Once the meal is ready its moved to the ready for pickup stage.
a) Driver Assigned - Once an order has been assigned , the order shows on this tab.
b) Driver Not Assigned - While an order has still not been assigned a driver , it shows here. In case
of store drivers the store manager will have an optio to:
i) Auto dispatch the order to drivers
ii) Manually assign a driver to an order.
In-Delivery
Once an order has been picked up from the store , it will show on this tab.
1. Name
2. Phone Number
3. Email Address
4. store Name
5. Logout
Order History
A store can find all the orders that have been organized under tabs. Each order on the list shows the
following :
1. Master Order Id
2. Store Order Id
3. Tracking Id
4. Order Time
5. Customer Name
6. Order Amount
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, 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.
Bank Details [Valid for Stripe Connect]
A manager can connect the store’s stripe Account and link a bank account with it to receive his earnings
when the system admin initiates the pay off from the app’s stripe account.
Catalogue Management
A 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. The
manager can mark an item as un-available and can inform the system when it would be next available.
New Orders are received on the application with a loud sound to make sure orders don’t go unnoticed.
Driver Application
Login / Signup
Our system offers the flexibility of facilitating order delivery through one of the two drivers types:
1. Freelance Drivers
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 to do their deliveries.
2. Store Drivers
Every store can have its own drivers and they can do the last mile delivery to the customer.
-> The app supports login with phone number or email address.
-> Freelance 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.
-> 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.
-> Passwords for the drivers can be reset via registered email address.
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/Food items 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. The
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.
These signatures are stored with the order and can be accessed later for dispute handling.
Driver will also have to take a photo of the id card of the person who received the order in case there is
any product in the order that requires collection of id proof , for example alcohol.
If contact less delivery was opted for then the driver has the additional option to take a photo of where
the driver has left the order as proof that it was indeed delivered.
If bag scan is enabled then the driver will have to scan the barcodes generated for each bag in the order
to further confirm the driver is dropping off the right bag to the right customer.
Driver Profile
All the details about the driver can be found on the driver profile page :
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
1. Order Type
2. Store Name & Address
3. Delivery 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.
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.
Return Management
If the delivery failed due to the customer not being available or lets say the customer returned the
product due to any reason , the driver will return the order back to the store and any such returns have
to be signed off by the store manager.
Geo-Fence Deliveries
All deliveries will be geo-tagged so the driver cannot mark the delivery as completed from any location
outside the geo-fence of the delivery address.
Shift Based Delivery Management With Route Optimization ( Route Optimization Is Available
As A Paid Add On )
For scheduled orders , drivers are allocated to shifts. For each geo-zone the number of deliveries possible
per shift is fixed and the time and number of deliveries per driver are also fixed. The app accepts orders
for a shift until the shift capacity is full. The dispatch algorithm manages the route optimization and
creates a time and distance optimized route for each driver per shift.
System Admin
Dashboard
Powered by the data from the entire platform, the dashboard visualizes different Key Performance
Indicators ( KPI’s ) 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.
All Managers
Create, configure and manage user logins and statuses of managers 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.
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. Brands : Add, update, and delete brands that could be used while adding products.
4. Manufacturer : Add, update, and delete manufactures that could be used while adding products.
5. Package boxes: Configure different kind of package boxes.
6. Packaging types: Configure different packing types for bulk pricing that is useful in whole- sale
selling.
Product Attributes
Product attributes are used to provide additional information for products like description, material,
dimensions, warranty information, etc.
The attributes are added on the CMS panel and associated with the product category which makes the
products under the product category inherit the same set of attributes.
The attributes/ values of the attributes could change per unit of a product, for example the battery of an
iPhone X is 2716 mAh while the battery of an upgraded unit which is iPhone XS Max is 3174 mAh.
Also, attributes while being setup in the CMS panel could be made filterable and/or searchable, allowing
the user to search for products with a certain attribute value in the product listing pages under a
category, brand, offers, etc
Multiple attributes could be grouped into an attribute group and the attribute group could be associated
with the product category. This helps in making the process of attribute creation and association quite
simple.
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/Supplier Products : Products associated with different stores.
Store Setup
Add, update and manage, stores, app commission charged to each store.
1. stores : Create, update, delete stores and manage various store configuration affecting the
ordering workflows.
Add, update and manage, store categories, stores, app commission charged to each store.
2. App Commission : App can also setup a per product per store commission which is
commonplace in ecommerce.
3. 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.
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
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. 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. Accepted Orders: Orders that are accepted by the store and are being processed.
3. Packed Orders: Orders that are being packed.
4. Ready For Pickup : Orders that are packed and ready to be picked up.
5. In-Delivery : Orders that are picked up and are being delivered.
6. Completed: Orders that have been 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:
a. Offer ID
b. User ID
c. Total Order Value
d. Total Discount Offered
e. 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. Withdrawal Requests : All withdrawal requests from stores, drivers are visible here.
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 as 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. 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.
3. 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.
4. store Statement – This will reflect all the transactions done for a store. This keeps a record of all
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 eller
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,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.
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.
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:
a. Due to store
b. To collect from stores
2. 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.
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:
a. City (Which city the coupon code can be consumed in, delivery address for the order
must be inside the city)
b. Order Type (You can configure it work with either a pickup order or delivery order)
c. 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)
d. Discount Type
i. Fixed Value
ii. Percentage Value
e. Total claim count for the coupon code
f. Number of claims allowed per user
3. Analytics are available for which order the coupon code was applied to.
4. 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.
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 store 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, customer, and stores
4. Manage the content for About Us, and Contact Us for the website
Inventory Module
This module allows the stores 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.
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.
Store/Supplier 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, stores 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.
2. Accepted: Orders that have been accepted by the store
3. Packed and Ready For Pickup: Orders that have been accepted by the store and are packed and
are ready for pickup. These orders have a ready shipping /delivery label printed and stuck on top
of the package.
4. In-Delivery : Orders that have been assigned to a partner and are in the process of delivery to
the customer.
5. 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, 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 store’s account for failed orders, driver compensation etc
Stores Customers
Customers created from the store web dispatcher are shown under this section, these customers are not
visible in the customer search for store orders to stores other than the one the customer was created in.
Inventory Module
This module allows the stores 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:
4. Add, update and delete the inventory of products from the store CMS Panel
5. Review inventory logs to track inventory changes – Manual Add, Manual Delete, Offline Sale,
Sale on App.
6. Product listing on the customer application is always in sync with the inventory.
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.
Additional Features
a) Login / Signup
Fleet managers are created for each city. He/she can manage orders for the stores connected to the
freelance driver fleet.
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 :
a. Request : Sends a new order notification to the driver giving an option to accept / reject
the order.
b. 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 dispatcher 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.
1. Order Status
2. Customer Details
3. Payment Type
4. Store Details
5. Driver Details for Assigned Order
6. Order/Cart Details – Food items ordered by the customer with payment breakdown
7. Edit order
d) 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
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.
New Orders are received with a loud sound to make sure orders don’t go unaccepted
1) The dispatcher can pull customer’s details via their phone number / email. If a customer is not
registered with the app , the fleet dispatcher can create a new customer.
2) If the store was using its own drivers , the order is forwarded to that store as a new order and
the store continues the processing.
3) If the store was using the app’s drivers , the order is forwarded to the store for fulfillment and
the delivery management system is triggered based on the pre-set business rules.
4) Dispatcher can select the customer’s preferred way of payment for the ordeR:
a) Cash
b) Card if on file
c) Prepaid wallet in case the customer has any balance
5) The dispatcher can also add any additional notes with respect to the order.
1. Stores can search for already added customers using their phone number / email or can create
new customers by keying in all their details.
2. The customers are considered as store customers and the details are kept private to the store
only and are not added to the central app’s customer list.
3. Store pays for the delivery fee in case they are using the central driver fleet.
4. Stores can pay via credit card , wallet or cash on pickup of order.
5. If the stores have their own drivers they do not need to pay any delivery fee as the store drivers
are considered as employees of the store.
6. Orders created by the store are moved directly to the prepare stage.
New Orders are received with a loud sound to make sure orders don’t go unaccepted
c) View drivers
The store can view all the store’s drivers in case they their own drivers for doing the deliveries.
3) B2B Delivery Module / Courier Module / Single Pickup - Multiple Drip Like On Glovo
Read more about Glovo’s business model here @ https://business.glovoapp.com/ and watch a video @
https://www.youtube.com/watch?v=yANEVs_IcCY
This module allows you to expose your delivery partners as a service to other businesses. Businesses can
source orders from other online platforms , can source offline orders and can use the RoadYo system to
get their orders delivered hence easing the need for them to hire and manage their own delivery team.
The RoadYo system offers the following:
1) Single pickup , single delivery
2) Single pickup , multiple delivery - This allows the business to optimize their delivery cost as the
partner picks up the orders from A, and deliver it to B , then C , then D… rather than pickup
from A , deliver to B , pickup from A , deliver to C….
Business’s use the web dispatcher described in (2) above to create the orders and dispatch and track
them.
For any additional payment gateways there will be a need to evaluate the following:
6) Payment Wallet
For Customers
The in-app wallet can be used as an alternate cashless payment system in countries where secure
payment gateways that support mobile apps are not available. The wallet can be recharged using an
online payment system.
The in-app wallet can also be used to receive settlements for cancelled orders or for orders with issues
and this money can be used to make payments for orders on the platform.
The in-app wallet behaves as a ledger and reflects the amount of money the driver/store has earned or
owes to the app.
a) Soft Limit - The entity is nearing the maximum credit limit that the app can offer to the partner
b) Hard Limit - The entity has crossed the maximum credit limit that the app can offer the partner
and the partner will receive no cash bookings till the partner clears the credit owed. The partner
can clear the limit by paying from within the app as long as the payment gateway is integrated.
Wallet transactions are visible on the wallet page and are divided into credit / debit transactions.
7) 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:
8) 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 and are credited into the
loyalty point wallet.
6. Reward points expire if not consumed within the set duration.
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.
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 XLS/CSV 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.
The same technology also allows stores to call customers and customers to call stores.
15) 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.
a) Node.API performance
b) Python API performance
c) MongoDB performance
d) Elasticsearch performance
e) Server analytics
We also integrate Fabric into our apps so we monitor the apps at all times for crashes.
1. Abandoned Carts
2. Price Drop for products in the wishlist
3. Price drop for favorited products
4. Price drop for products in cart
All accounts are protected with two-factor authentication for superior security..
App Localization:
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 and for Android ,
while for the website a language file is provided.
If enabled on the CMS the administrator can update product catalogue data in multiple languages so that
all data that is entered into the application shows to the users in their preferred language , this is great
for localized SEO to increase market reach.
For store drivers , drivers are not assigned to zones , store drivers are considered to serve the entire city
or zones that the store has agreed to deliver to. The delivery zones for the store can be managed on the
store profile page.
The above integrations depend on the technology viability with the POS system.
All our analytics are powered by Apache Spark. This is the best technology to use for capturing and
analyzing big data.
The Overview dashboard shows key sales, orders, and online store visitor data. You can see at a glance
how your store is performing—across all of your sales channels, and for any date range.
Following are the dashboard report shown:
1. Total sales - Shows the sales amounts, sorted by sales channel. Total sales is equal to gross sales
− offer discounts - promo discounts + shipping + taxes. Only completed order aggregation is
performed.
2. Total orders - Shows the number of orders that were placed till the date, except cancelled
orders, all the order numbers were aggregated based on any date range.
3. Top products by units sold - Shows the top-selling products. This is useful to know for marketing
and inventory purposes.
4. Top product by number of clicks - Shows the top products based on number of clicks by users.
5. Top products added to cart - shows the top products based on number of users added the
product to the cart.
6. Top product cancelled - show the top product based on of cancelation, This is useful to know
product manufacturing defects and can be further segregated to the reason why products get
cancelled.
7. Top product on wish list - show the top product on wish list. This is useful to maintain the stocks
of respective products.
8. Top product categories - show the top product categories. This is useful to know the market
trends.
9. Sessions by device type - Shows the number of sessions on your online store and what kind of
device was used to access your store. The most common device types are mobile, desktop, and
tablet.
10. Sessions by location - Shows the number of sessions on your online store sorted by country. This
is useful to focus the business to certain countries which are generating greater sales to the
business.
11. Repeat customer rate - Shows the percentage of your customers who have placed more than
one order from your store. The rate is calculated as returning customers divided by total
customers. This rate can help you determine how solid your established customer base is.
This can be fixed by retargeting the users who have abandoned their carts with different communication
channels like emails, sms, push notification or offering them special discounts.
Our smart engine powered by Apache Spark, Cassandra, and Kafka would generate reports and user
segments based on rules setup and can automate the targeting.
Example 1 : Send an email and push notification to a user after 1 hour of cart abandonment, followed by
everyday push notifications.
Example 2 : Send a 10% discount coupon to a user after 2 days of cart abandonment.
This is a great and effective way of regaining the lost customers
Coming Soon
Alexa Skill for Placing Orders
This module will allow the users to integrate their Alexa Enabled Devices like Echo, Echo Show, Echo Dot,
etc with their Med.Me Account via Med.Me Alexa Skill and place orders or check order status on
Med.Me by saying simple commands like “Alexa, Re-order my last order from Med.Me” or “Alexa, where
is my last order” etc.
Quickbooks integration
This module will allow all customer and order data to be pushed into quickbooks to manage:
Web Apps HTML, JavaScript , Angular 8.0 JS for the Web Dispatchers and
React JS for Customer website
Frameworks HAPI for Node.JS API and Django for Python API’s , Next.JS for the
progressive web application.
Message Protocols AMQP and Kafka for internal job queues and MQTT as a high
speed message queue for all real time communication used for
messaging and live tracking.
Security SSL API’s , 128 bit AES encryption for critical data , MD5 encryption
for passwords , Reverse Proxy
Scale Docker for vertical scaling and horizontal scaling. Replica sets for
DB to maintain data redundancy. DB Sharding required in case
scale is hit.
Testing 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 Applications:
Note - Database, Version Control, and Project Management will remain the same as mentioned under Back-End
and Web Services