Inspiration

In India, there are as high as 7 Million (official) and 200 Million (un-official) sellers. But when we compare that number to the number of sellers that are available/selling on e-commerce the numbers are no where close.

so there must exist a couple of reasons why they chose not to be online. when researched I found out that one among the reasons they chose to stay away form e-commerce is lack of proper understanding on how to use the portal/website that the e-commerce players provide to sellers after getting them on-board. since this is difficult to operate they chose an other way which is easy to use but often not very reliable when done manually i.e Whats App Groups

They choose to operate by creating what’s app groups and add a few people they know and request people in the group to add people they know to post products, a different what’s app group for their clients to place orders, track orders.

There are a few risks involved with this approach:

Very Limited Market Space: What's app group at max can only accommodate 256 people which is not enough for a business to stay alive.

Involves lot of Manual processing: As orders are received through what's app, payment status, tracking details..etc of the order has to be manually updated.

Difficult to handle when the business scales: Assuming they scale running an entire business on what's app group is not feasible and easy

Almost impossible for product returns: Returning the product is almost impossible in platforms like this thereby giving it even more less sales.

What it does

So from the research mentioned above we can understand that the best way of improving sales and generating more revenue for them is by "getting them on-board an e-commerce platform" but the platform should have a more abstracted way which gives flexibility for the users to operate the platform without actually operating it. Here comes InviChat - A completely abstracted way of dealing with your inventory. It is a whats app based bot service which when triggered sends a few questions to the seller about the product and when the seller feeds the product details to the bot which includes image data, the text data of the product gets stored in the No Sql Database and product images in AWS S3 Buckets and the external link we get as a result is stored back in the mongo Database. Now the frontend service which is referring the database using a heart beat mechanism auto updates itself and eventually displays the new product updated to the endusers.

A customer end bot is also designed for the use of end-users (customers), when a new product is created by the seller. we run the product details through our machine learning service to classify the product into categories (Tags), and once we know the categories of the product we filter users based on their user-profiles which usually has the categories they are most interested in purchasing and directly push notifications to their what’s app. since people tend to open whats app more than e-commerce applications. we can grab user attention significantly faster.

How I built it

Twilio is used to consume the what’s app Api and for the push notifications and MongoDb is used to store the text data of the products and for logging and s3 buckets are used for non-text data.

RabbitMq is used as a Message queue service to before pushing the notifications and to ensure definite delivery of the notifications. The High level design of the entire application is attached below:

HLD OF BOT

Challenges i ran into

As it was my first time using message queue service, setting up RabbitMq was one main challenge i’ve ran into particularly given my system, which is a mac. though everything during the setup went on to be normal when i was trying to connect to rabbitMq from the “main server service ” it kept refusing the connection because it only accepts connections from “localhost” this took quite sometime for me to understand why it kept refusing connections and finally i could work around it and found a fix to alter the configuration files and then boom..! it worked.

Accomplishments that i'm proud of

Bringing this project to working stage in a few days is the biggest accomplishment that i’m proud of because a few tech stacks i’ve used in this project were completely new to me and i’m so happy that i’ve learnt to implement things on flow when doing hackathons like this.

What did i learn

I’ve learnt how message queues are used in the real world and i’ve also learned to integrate rabbitMQ to project and i’ve also learnt how to think of problem statements in a real world perspective and solve them.

Share this project:

Updates