Kalpit Jain's Photo

Restaurant Food Ordering System

featured image

Overview

This platform was envisioned to enable a restaurant for home delivery of food orders, without relying on any aggregator. It’s an end-to-end solution, i.e. customers can place their order online and the restaurant will receive/manage the orders on the same platform.

Problem Statement

The client, owner of a restaurant chain in New York City, was facing sustainability issues by solely relying on leading restaurant aggregators. First, the aggregators would take a significant chunk of their revenue per order as fees and charges. Second, there was limited support for large orders and orders scheduling.

Goals and Objectives

  • To develop an intuitive, end-to-end platform for facilitating online food ordering.
  • To ensure the system has all essential features in line with the leading restaurant aggregators.
  • To build a restaurant-facing companion web app for managing orders, multiple food menus, multiple delivery zones, discount coupons support, and payment processing.
  • To develop a modern web app using React to provide a better user-experience.

Tech Stack

  • Backend: Django (Python), Django REST Framework
  • Frontend: React, Next.js
  • Database: PostgreSQL
  • Cloud Services: Digital Ocean
  • Payment Processing: Square, PayPal
  • Others: Django Channels, Google Maps Platform, Docker, Git.

My Role

I wore multiple hats during the planning and development of this project. I was responsible for the development of this product from inception to launch. I designed the complete technical architecture, backend, frontend, and also handled communication with the client and designer.

Challenges & Solutions

Huge Undertaking and System Design

At the time, it was a huge undertaking for me. I was solely responsible for various technical decisions, system design, architecture, and direct communication with the client.

Solution: I took on all of the roles by following strict discipline and time-management. Asked for help from industry experts for the skills I was lacking and kept regular communication with the client.

Real-time Updates and Complex Product Attributes

A crucial aspect of ordering food online is getting the order updates instantly, without failure. Additionally, the functionality of product attributes (food customization options) is significantly more complex than a typical online product store.

Solution: I leveraged WebSocket technology to build a reliable real-time updates solution. It worked seamlessly and provided order updates to the restaurant without any human intervention. I also implemented a sophisticated custom product customization feature to support the nature of the business requirements.

Outcome & Impact

  • The restaurant was able to implement to platform in their workflow with minimal effort.
  • Increased revenue of the business significantly by eliminating the exorbitant charges paid to aggregator platforms for the orders serviced through this solution.
  • Provided state of the art user experience to customers, along with additional features such as placing large food orders.

Reflection

Working on this project deepened my understanding of system design and architecture. I also improved by communication skills significantly as I worked with the client directly to understand their requirements.

Screenshots

I've helped companies build high-quality, scalable software solutions. Ready to make your product a success?

LinkedIn
GitHub