OOP-based Python Chatbot project for my internship at Lafarge Egypt. The chatbot purpose is to optimize the decision-making process through automating report generation of different types of data. It should also serve as a fun demo for visitors wanting to learn more about the plant.
- The chatbot is completely powered by online google sheet that could be easily changed by any user, without any programming experience.
- The data sheet used for this project is fake, auto-generated by chat-gpt.
- Programming language: Python 3.10
- GUI: tkinter
- voice-to-text: speech_recognition
- text-to-voice: pyttsx3
- Data sourcing & manipulation: pandas
- graph plotting: matplotlib
- other: os
The user can communocate with the bot through the following:
- Texting: both the user and the bot can send texts to the other
- Voice: both the user and the bot can talk to the other
- Buttons: At each reply, the user has the option to pick a reply from the dynamically-allocated guiding buttons above the entry box.
The engine powering the chatbot (driving the responses) has the following capabilities:
- Information center: looking up key:value descriptions about the company from the google sheet
- Data lab: uses a table from the google sheet to produce the following summaries using any row/col as the user requests:
- Data aggregation: min, max, mean, median
- Value Lookup
- Filters
- Graphs: Histogram, scatter plot