The goal of this project was to make a contextual chatbot as a feature for the GROWW website. This was part of our CRIO stage 3 externship.
- The Frontend code is kept in
./client/section - The admin UI code is kept in
./admin-client/section - The server parts are in
./backend/and./chatbot_backend/section - Frontend is deployed using netlify and backend using heroku
- API details can found in
./backend/api
- Create React App was used for the frontend.
- react-router-dom (for making this multi-page website)
- React-simple-chatbot was used for the chatbot UI
- react-bootstrap and material-ui for the UI parts
- MongoDB v4.4 for the database
- Mongoose v5.12.0
- Express.js middleware v4.17.1
- Node.js v12.20.1
- string-similarity v4.0.4 based on Dice's coefficient for finding similarity between strings. This npm package was used for string matching to find the question asked by the user in the database. The minimum rating for string matching was kept 0.34.
-
The structure of the chatbot is basically a decision tree system comprising of 2 levels in the page section and 1 level in the products
-
Based on the page and product context, the chatbot pops up and the user get questions based on that context
-
In the orders section, whenever a person clicks on a particular order the chatbot again pops taking details of that order and giving faqs based on that.
-
The admin UI allows the admin to configure questions and answers of their choice. They can add, edit and delete.
- Dummy website to see the chatbot working based on the Groww website
- Admin UI
- Make this a general chatbot configuration app so that any user can use it in their website
- Using NLP instead of string-similarity to understand user questions and answer them
- Include the feature of adding dynamic questions/answers