
Chatbot Project
In the Activity Led Learning module, the first year Computer Science students were required to make a Chatbot in python. This project required students to work in groups in order to achieve a common goal.
The initial idea for this project was to make a Chatbot that would give the user helpful information about Coventry, which could be eventually adapted to other cities as well. This first idea would be given the name of “Coventry Friendly Bot”, and the user could get information about train/bus stations in Coventry, near gyms, near restaurants, top ten things to do in Coventry, shops…
The platform chosen to implement the Chatbot was Discord as it was one of the most known ones.
As a team member, I was assigned to make the train/bus stations feature on the chatbot by the team leader. An early stage code of the bus/train station feature for the Coventry Friendly Bot is available here.
The idea, however, didn’t prosper, as the group was not working as a team as expected, and the communication was very poor between members, leading to bad development of the Coventry Friendly Bot. The idea didn’t last long, and we only worked on it for a short period of time.
Then, after the idea of the Coventry Friendly Bot was left behind, another idea came up, and it was decided that the team would be making a “Storage Bot”, which, as the name suggests, could be used to store files. And Discord remained the platform chosen to have the bot running, despite having many limitations, such as the size of the file that could be upload, which would affect not only the upload of the files, but also, the download, as well, as the file sharing between users, as the maximum size supported for a regular Discord account is 8MB.
For this new idea, the team leader didn’t assign any of the team members tasks which created some problems as none of the researchers knew what to do, but these were sorted out and the upload feature for this new Chatbot was assigned to me. From then on, the team started having better communication and more teamwork spirit, and despite working on different components, every team member was collaborative and helpful with one another.
As I had never done anything similar to this project, I had no knowledge in this field, which made me have to learn everything. And I especially struggled in programming the task that I had been assigned, the upload feature, since I couldn’t find information on the internet that could support me, making it even harder and frustrating. However, I was able to overcome most of the problems I was presented with, provoking a rise in satisfaction and motivation while doing the project which caused in me a great sense of perseverance.
As previously referred, I had to program the upload component for the Storage Bot, which the user could use to store lights files, making the Chatbot a cloud-like service. To upload the files the user would have to be signed in, as there is a built-in service where the user can register and choose a password, later on, used to sign in. And all this data is stored in a database. In addition to the user table in the database, where the user’s data is stored, there is also a files table where information about the files that users upload is stored which is updated whenever a user uploads a new file.
To use the upload feature, the user must use the !upload command. Then a message is sent to the user telling them to send the file they want to store. When the user sends the file, its info (such as its size, name, and URL to download it) is taken right away. However, if the file is bigger than 8MB, the user won’t be able to send it and will be asked whether or not they would like to store another file. If the file is smaller than 8MB, the URL will be used to download the file into the user’s folder, and the file name, the file path, and the user’s id are added to the files table in the database, as well as a code that is assigned to each file, that will be used to download the stored files. After uploading the file, the user will be given the option to store more files.
The code for my part is available here.
This project was really challenging for me, and was time-consuming, as I had to do a lot of research, however, this allowed me to improve my skills not only, as a programmer, but also, improve my teamwork skills, as well, as my communication skills. Overall, this project not only made me learn that I need to push myself to the limits, as it was of high difficulty for me but also, made me develop new research skills which I believe will help me as I will be more efficient when doing research for a future project.
The overall goal set by the team at the beginning of the project was achieved, however, the outcome would have been better if the team has had more teamwork from the beginning and if the communication would have been better.