Inspiration

Started with AWS around a year back and completed a couple of certifications AWS Solution Architect Associate and AWS Developer Associate, however, there was still a gap in understanding around how to leverage the power of AWS platform. When I and Rajat Ratewal heard about AWS Chatbot Hackathon, we thought it's a great opportunity to learn and be part of a great technology community. We formed a team and decided to attack a problem from a customer perspective and that's where we struck an idea to build a virtual marketplace for used cars for active selling where car sellers can reach out to a huge number of used car dealers for instantaneous bids for their cars.

What it does

It has two applications a Chatbot powered by AWS Lex, Lambda, DynamoDB, S3 and CloudFormation and a slack application which is again powered by AWS Lambda, DynamoDB, S3. Chatbot allows an end user to provide information about his/her used car in a friendly manner and creates an auction for the same in Car Dealers Market places, which are separate Slack teams. Chatbot allows users to upload images as well to ensure dealers in a market place have a better view of a car for them to bid quickly. As soon as car seller finishes the conversation with Chatbot, a new channel gets created in a Car Dealers market place with car details like Brand, Model, Variant, Year of Registration, Expected Price, Auction start date and end date. Auction expires after the end date and no bid is accepted after that for that particular car auction.

Car seller can chat with the bot to find if there are any bids for his/her car and can show interest in any of the bids by mentioning dealer reference number. The bot then shares the car sellers email address with the respective dealer for them to have a further discussion which is then agnostic of chat bot.

How I built it

We have used AWS Lex, Lamda, DynamoDB, S3, CloudFormation, node js and servless framework. We are a team of two (me and Rajat Ratewal), we decided that we think from an end user perspective, We debated for weeks to decide on the use case and conversation flow, I must say it wasn't easy as we really wanted to create something good. We divided the overall development into a product backlog and every week we used to decide on sprint backlog which we used to complete post office hours (have spent nights :-)). It was not an easy task because both me and Rajat we quite new to AWS platform and had steep learning curve. We read a lot of documentation and saw multiple videos on link and special thanks to Marcia Villalba link because her every Tuesday videos helped us uncover so many concepts around our solution.

Challenges I ran into

Given that we are comfortable in Java, we decided to develop a solution using Java however after spending 3 weeks we figured out that it's going to be a tough challenge if we go ahead with Java as there wasn't much documentation around Lex & Lambda implementation in Java. We then switched over to node js but that also wasn't an easy task as we both were new to node js and asynchronous tantrums. I must say AWS Lex was also a tough to understand initially. Another challenge was to build an understanding around slack.

Accomplishments that I'm proud of

Great journey, we have learned a lot and were able to join dots which we could not do so well even after doing certifications. We are proud that we have reached to this point and we have made a meaningful Chatbot which has real life use cases and ability to expand to different market places

What I learned

We are in love with AWS, I wish I started with it long time back. Learned multiple services like AWS Lex, Lambda, IAM, S3, S3 static website hosting, DynamoDB, CloudFormation, node js, Slack apps. Moreover how to take such a challenge over the finishing line with a day job. Looking forward to delve more into AWS and leverage it for other use cases.

What's next for MarketPlace Bot

Make it robust, Add multiple market place as it has currently used car dealers market place however the concept and implementation can adapt to other market places as well like used phones, home furniture, books etc.

Built With

  • aws-lex
  • cloudformation
  • dynamodb
  • lamda
  • node.js
  • s3
  • serverless-framework
Share this project:

Updates