Apps like Blinkit, Zepto, Swiggy Instamart, and others have seen tremendous growth in recent years. To explore the challenges and intricacies of such apps, I decided to create a similar app to understand what it takes to deliver groceries to your door in 10 minutes or less.

Problem Statement

So basically these are just one vendor ecommerce site with faster deliveries which are in less than a day the main problem to solve here is how to get the delivery agents in the area and then assign them to the order, other features of the app remains the same as an ecommerce websites

As a freelancer I have built quite a few ecommerce platforms with several services this is no other exception.

Tech Stack

As a full stack developer working primarily with Django as the backend and React as the fronted I choose the same with my past experience with Class To Cloud for the frontend I chose React Native.

For the databases I used PorstgresSQL becuase I needed an SQL database for better storage of data for the in memory database I used Redis.

Backend

  • Framework: Django
  • Database: PostgreSQL for structured data storage.
  • In-Memory Database: Redis for caching and quick data retrieval.

Frontend

  • Framework: React Native (leveraging past experience with Class To Cloud).

Data Scraping for Inventory Management

While building the project I took care of the ecommerce part very quickly like the product and category listings but for the sake of real world data. I needed to scrape data I discovered a very new method using har files. You can read more about this experience here.

I used this data to create the design for the app which turned out to be good I took some inspirations from figma designs and some from the existing apps. It turned out to look like this

Design Inspiration

For the app's design, I combined:

  1. Figma templates.
  2. Inspiration from existing apps like Blinkit and Zepto.

Screens Designed

  • Home Screen
  • Live Location Tracking

Live Location Tracking

I have no experience wokring with mobile architecture and GPS systems I researched about this topic a lot and found that everyone was talking about location udation using Kafka. Its an event driven system which handles all the tasks effortlessly but as a monolithic architecture app I didn't want to complicate things by adding more overheads of kafka so I came up with a solution of my own.

I knew about Django's caching system but hadn't used it before I used redis and made it work you can know about this aspect in detail here.

Although I don't think this system is great but as a side project and if so very less user base I think the system is just fine. I will update on this if I find a better way to do this

Lessons Learned

  1. Tech Stack Decisions: The importance of balancing complexity and performance when choosing a tech stack. You don't need to necessarily go with the tech stack which everyone is suggesting but chose the stack that gets your use case done and you're comfortable in maintaining.
  2. Real-Time Updates: Real-time updates require careful synchronization across multiple systems. I am still figuring out about how to make these updates more secure and reliable also what to do if no drivers are available in the area.
  3. Modular Architecture: Make your projects modular if tomorrow you need to scale and you want it to be fast then you should be just a ec2 instance away from doing so.

Future Considerations

  • As of now I don't think anything more is need to be added to the project considering the scope if in future I decide to ship it as a product then I would consider updating
  • As of now the state of the app is just dilevering items and stroring it to the database I could add analytics and also one app for the admin to view the data on their phone.
  • Make this app whitelabeled anyone can use this app with just some configurations up and down.

Conclusion

Building a 10-minute grocery delivery app is a challenging yet rewarding endeavor. By addressing operational and technical challenges head-on and making strategic decisions about the tech stack, this app sets a strong foundation for success. As the app grows, it will continue to evolve, integrating advanced features and scaling to meet increasing demand.

Source Code

You can find the complete source code for the app here.

Connect with Me

If you have questions or would like to share your own experiences, feel free to leave a comment or reach out!

Author Of article : DivyanshuLohani Read full article