ekkobot is a Python-based personal assistant that lives within my Discord servers. Named as an homage to Ekko from Arcane, ekkobot originally started as a simple music bot, streaming songs from Youtube using Discord API and various audio extraction libraries. Since then, I've expanded its capabilities, such as recommending movies, activity planning, or daily sports recaps. Currently, I'm working on integrating smart home automation, allowing ekkobot to unlock my door!
ekkobot is my favourite pet project - fueling my curiosity and allowing me to explore the world of software development, specifically the vast amount of Python libraries available. The video on the left shows ekkobot and a few of its music commands. This was its very first function, and it's grown so much more since then.
With the abundance of apps and websites designed for specific functions, I often found myself overwhelmed by the number of apps and tabs open to access everything I needed. ekkobot is my solution to this problem, providing a centralized platform where I can quickly access all the necessary data and perform key tasks for my day.
This project originated from the everyday problems I face. Initially, it was created to allow me and my friends to listen to the same music while playing games online. Over time, I expanded its capabilities to pull sports updates, keeping me informed without being distracted by news articles and social media. I've even started brainstorming ways to allow ekkobot to unlock my door, as my door electronically locks on closure.
This bot is mainly software-focused, with most milestones revolving around learning new libraries and improving functionality. That said, ekkobot has allowed me to:
gain a familiarity with Python and its libraries, such as os and asyncio
develop experience integrating third-party APIs and fetch real-time data
master the creation of my Discord bots, including commands, event handling, and user interaction to enhance user experience
work through edge cases and bug fixes to ensure functionality under varying conditions