# Project Scope The proposed application should provide these facilities such that all parties involved, namely the customers, shop and delivery agents, are benefitted. ### Customer The application should present a customer friendly and welcoming interface that provides flexibility and ease. This interface should allow for the display of the food menu, which allows the customer to add and remove items at their comfort. It should provide the customers with great offers and combos in an easily accessible manner. It should provide personalized recommendations based on customer preferences. Ordering food via a dine-in or drive-thru should be made considerably easy by offering easy modes of placing orders and making contactless and safe payment transactions. The application should provide a live order tracking facility. ### Shop The shop application should provide a smooth interface for viewing and managing the orders placed. It should also provide the facility to add/modify/remove products, perform stock management and add/modify discounts and promotional offers. This application should allow for the tracking of order delivery and process payment transactions. ### Delivery agents The delivery application should provide the delivery agents an interface to view and pick up orders. Delivery routing optimization should be performed to facilitate an effective delivery mechanism. This interface should provide the delivery agents with live maps for routing and order drop-offs. ## Requirements ### Customers Modern customer are hungry and always in a rush, we have to reach our customers through all possible sales channels. Both online and offline and bring them under a unified interface. **Online** - Create a new Android. application for Google Play store - Create a new iOS Application for Apple App store. **Offline** - Create a new in-restaurant application to book meals from the table using QR codes. - Ability to order in advance and self-pickup the order from shop - Order in a drive through mode. by giving vehicle details. ### Delivery agents Online food delivery is a delicate and booming industry with key challenges being fast delivery and accurate route tracking. - Delivery app for agents to get customer info. - Accurate routing using map service. - Calling and location tracking for agents. - Anonymised calling using internet calls to protect customer privacy. - Optimised delivery route planning for fast delivery of multiple orders. ### Shop The shop interface must coordinate and orchestrate the entire system at a given region - Create/Update/Delete products and categories. - Manage orders from customers. - Integrated kitchen and billing to optimise work. - Connected order statistics and aggregation. - Coordinate delivery agents. ### Management Running a large restaurant chain requires a high level of automation and lot of centralised monitoring and control. - Products dashboard - Add products / categories - Update price and other details. - Outlets dashboard - Create / update / remove outlets. - Manage every aspect of the outlets. - Manage delivery staff of each outlet. - Administration dashboard - View and manage employee information. - View and manage cash flows. - View and manage transactions. - Reporting dashboard - Generate reports based on outlets. - Sales reports segmented on dates and outlets. - Customer purchase patterns and analytics reports. - Logistics and purchase patterns. ### Specific requirements - Net calling for customer and shop without sharing phone number - In-app advertisements using google admob / facebook. Revenue estimates from **In-app advertisements** | Ad type | Android | iOS | | ---------------- | -------------------------- | --------------------------- | | Rewarded (Video) | $8.22 / 1000 full ad views | $10.11 / 1000 full ad views | | Interstitial | $4.56 / 1000 impressions | $3.68 / 1000 impressions | | Banner | $0.92 / 1000 impressions | $0.86 / 1000 impressions | In-case of a shopping app, video ads and Interstitial apps are not applicable, as they cause unwanted intrusions to the user experience. It is advisable to only include Banner ads. ## Challenges ### Payments - Receive and process payments. - Process orders. - Automatically calculate delivery charges. - Automatically send bill to customer email. - Payments dashboard. ### Delivery - How to optimise for distance and time for delivery agents. - Assign multiple orders to multiple customers. - Adapt to change in conditions/orders and real-time updates. - Login and monitoring of delivery agents. - Delivery management dashboard - Adapt to multiple delivery agents. - Build a scalable system with flexibility to specialise or adapt to new conditions. ### Promotions and Offers - Manage promotional offers and discounts for specific orders. - Manage customer targeted offers and discounts (birthday wishes and offers). - Create seasonal and weekly offers based on customer behavior. - Gather insights from analytics and create campaigns based on customer preferences. ### Feedback and Rating - Collect and share customer feedback/rating to public platforms. - Create social media campaigns and advertisments based on feedback. ### Training - Training delivery agents on the application. - Training staff on - Uploading products - Giving offers - Managing orders - Updating stock - Extra training for marketing and promotions ## Technical Specifications ### Backend **API** - REST API built with Django. - JWT authentication. - SMS OTP for customers. **Map & Delivery Routing service** - Open street map data. - OSM Routing machine. - Implementation for multiple orders. **Architecture** - App servers behind nginx reverse proxy. - PostgreSQL database. - Firebase for location and notification. - Data filtering and ordering options. - Data exports and archiving. ### Front End **Customer mobile app** - Modern Javascript, React Native. - Intelligent caching for improved UX. - One-time sign-in. - Cross platform for both iOS & Android. - FCM for notification. **Customer web app** - Modern Javascript, Nextjs. - Intelligent caching and routing with react-query and react-location. - OTP based sign-in. - Cross platform for both mobile & web. **Shop application** - NextJS & Tailwind CSS. - Ultra fast modern frameworks. for realtime updates and reports. - integrated with push notifications. - Smart kitchen integration. **Delivery app** - React native. - Custom modules for location tracking. - Routing and locations with google maps and openstreet map. **Dashboard** - NextJS & Tailwind CSS. - Ultra fast modern frameworks for realtime updates and reports. ### Infrastructure **Data Layer PostgreSQL or MySQL** - The database can be either PostgreSQL or MySQL which is connected to the application layer via an ORM (Object relational mapper). Both these databases are industry standards and workhorses for a lot of enterprise grade users. - Configurable data and custom data structures can be accommodated using a hybrid data of both SQL and NoSQL leveraging the advantage of both databases. At smaller Scales PostgreSQL provides HStore and JSON support to facilitate flexibility and storage of arbitrary data outside of entity relations. - Databases can be hosted on any cloud provider who has an availability zone in India. Data protection and redundancy can be assured by opting for a multi-AZ database setup or a daily / weekly backup solution can also be adopted based on requirements. **Test-Suite** - Test driven development ensures that errors do not creep into the project over time and help catch problems and undesirable behavior at the early stages of development itself. - Tests for the API and backend will be written by leveraging the pytest framework and django’s in-built ‘TestCase’ classes. - Frontend tests will be written using ‘Jest Js/react testing library’, a JavaScript library that is fast becoming ubiquitous with JS testing. **Cloud provider AWS / GCP** - The VPS (Virtual private server) and database instances can be availed from either AWS,Azure or GCP based on requirements. **Application security** - From the authentication system to the access control, we strive to provide Industry standard security and data protection. By using Token based Authentication, compromised accounts and credentials can be quickly blacklisted. Extensive logging and anomaly detection alerts to suspicious login attempts and attacks. \newpage ## Project Timeline ```{=latex} \milestone {Milestone 1} {UI Design} {Frontend design} {HTML,CSS,JS \& Figma} {The overall brand colors and design motifs will be created and finalised} {cone} \milestone {Milestone 1} {Architecture} {Backend design} {Django, python, Nginx, Jinja} {Backend and crucial services and architecture will be written, and a prototype model will be deployed for staging} {ctre} \milestone {Milestone 2} {App development} {Shop application} {Backend, NextJS, API} {Create shop application to add and update products, as well as manage shops} {ctre} \milestone {Milestone 3} {Prototype} {Customer app} {react-native, react, frontend} {Create cutomer app with basic functionalities and iterate for refining features} {ctre} \milestone {Milestone 4} {Delivery app} {Delivery executive app} {React-native, Geo-tagging, firebase} {Create delivery executive app with all the required functionality} {violet} \milestone {Milestone 5} {Testing} {Application testing} {Pandas, Selenium, Load-testing} {Test the application for bugs and quality control, make UI changes} {violet} \milestone {Milestone 6} {Deployment} {Web application} {Full stack, payment integration, testing} {Update customer web app, create management dashboard with all necessary integrations} {ctwo} \milestone {Milestone 7} {Integration} {Smart integrations} {Dashboard, Pandas, JS} {Integrate systems together. SHop app with kitchen, shop to management and delivery applications. Connect customer orders to management and other systems} {cone} \milestone {Milestone 8} {Training} {Personnel training} {online training, hands on} {Training for delivery personnel and staff on features, delivery process} {yellow!10!green!90!} ``` ## Cost breakup and commercials | Item | Scope | Estimated cost | | ----------------------- | --------------- | -----------------: | | Initial Development | one-time | 7.5 Lakhs INR | | Cloud Hosting | monthly | 50 USD / 5000 INR | | SMS alerts/updates | per transaction | 0.002 USD/0.15 INR | | Voice calls | per call | 0.50 INR/call | | Updates and development | monthly | 21000 INR | **Initial development cost** : 7.5 Lakhs INR + taxes as applicable **Estimated operational costs** : - Cloud hosting charges of 20-50 USD for smaller scale. - Administrative staff for monitoring and management. - Training and technical personnel. ### Additional costs - SMS Alerts and updates is a third party service provider (Amazon web services) and their charges will be billed on a monthly basis. - Domain registration for the application will cost approximately `INR 1000` per year. - Infrastructure costs or purchase/repair of printers/devices. **Cloud telephony** - Voice Call Packages - Rate/Unit 50 Paisa (Each unit = 15 secs) - Package Cost Rs. 500 + GST 18 % **Plans might vary depending on utility** ## Key deliverables - Mobile & Web app for customers to place orders and receive updates. - Application to manage the online store. - Mobile application for delivery agents to pickup orders and deliver to customers. - Admin dashboard to monitor delivery and payments along with business insights. ## Future expansions - Intelligent chatbots which can take orders from whatsapp. - Data driven business decisions and centralisation of stock supply and logistics. - ERP integration for smooth functioning of organisation <!-- Delivery only for merchants - or Featured merchant/priority on the platform - Pickup and deliver - Payment/ Cash on delivery <!--## Contact \bbox{ Jishnu P e-mail: jishnu@techagelabs.com Phone: +917702102164 }-->