Awesome Bot - Chat bot project - Group E3
A chat bot project that will be a useful tool for students!
We offer the following features:
Checking the weather
Subscribing to your favourite youtuber
Unsubscribing from bad youtubers
Checking who the bot is subscribed to
Asking for Jokes
Tweeting something on Twitter.
Following someone on Twitter.
Unfollowing a hated person on Twitter.
Personal Contribution
YouTube Feed
The YouTube Feed was my largest contribution to this project.
Consisting of about 1000 lines of code, 4 files working together, and Object-Oriented Concepts, I am heavily proud of this contribution
Team Support
Since our team was not formed by professionals, I had to help with team members that found things difficult.
Primarily, I have helped my team members migrate their code from Discord to Slack.
Other times I have helped with solving programming issues with teammates, such as a unit test error due to trying to type() None and then checking if it was None.
Non-Included Contribution
Originally, I had contributed a basic Discord script that would connect the bot, as well as a base for team members who did not know exactly how to hook with Discord’s code.
This was later scratched when the team decided to move to Slack, but this was not an issue for me. Most of the contribution that was not directly included was done for the old Discord version.
Skills Developed
Team Leadership
With the official Scrum Master and Product Owner being absent during multiple meetups, and nobody willing to take control of the project progress, I had to lead the team and make sure they were on track as well as knowing what they should be doing.
This allowed me to try to help the team, but also make sure that I know that they are on track, and not wasting their time.
With this skill expanding, I am feeling more confident in becoming a team leader again for the next project.
Python Development
I have not previously programmed with python entirely, with this project I was able to practice and attempt my best at doing anything with the language.
I was able to understand how python syntax works, which was difficult at first, since I am used to ending with semi-colons and opening parenthesis on if statements, as well as opening curly brackets when creating a method, class or similar.
The most challenging thing with python development was making sure that the code did what it was supposed to do, primarily with asynchronous methods, since in C# they can be called without awaiting, but in python they need to be awaited.
Teamwork
I worked closely with my team-members, mainly attempting to make sure that those who needed help got it, and those who had no issues were informing the Scrum Master about their progress.
We had to switch from Discord to Slack, so I had to co-operate with the Scrum Master as well as my other teammates to correctly migrate to Slack without any problems.
In the end, this worked out perfectly fine, and we were able to correctly migrate to Slack, with no issues, and we keep everyone informed on big decisions, and try to keep everyone on track.
Version Control
I have learnt to more correctly utilize version control, branching, and merging with conflicts, but solving them with the rest of the team for a major agreement on what should be kept and what should be thrown away.
Since it was all in a team project, I had to make sure that all commits I did were committed to the correct branch to not create conflicts.
In the end, the main challenge I must overcome with version control is splitting my commits into smaller, more precise and specific commits.
Conclusion and Reflection
In conclusion, the project was not fully complete by the dead-line, however enough progress was made to call it a working prototype.
Looking back at the project, I quickly assumed that it would be a simple task to complete, and that we would not take too much time to make something decent.
I feel like I have changed my attitude towards the project now, as I tried to challenge myself with the YouTube Feed, however I do not feel like it was a good choice, since I had to break my head multiple times over the simplest of issues that python would throw my way.
One of these simple issues was asynchronous methods… Python does not like running asynchronous methods without awaiting them, which personally, I feel defeats the purpose of having asynchronous methods in the first place.
In the end, I learnt that even simple issues will have simple answers; but breaking yourself trying to figure it out will not help and calling for help will benefit anyone who is stuck.