This was our team's first hackathon as first-year students and due to the pandemic was forced to be online. We know how hard this past academic year was for students and teachers alike, with many of us having trouble adjusting to a full online learning/teaching experience. Therefore, we decided to focus on education because it's what we have the most knowledge in, in terms of the difficulties students are facing and what ideas we can brainstorm to solve those obstacles.
What it does && Problem Solving
As part of our educational hack, we decided to focus on a key problem many students were facing, which was managing all the dates and reminders for their online classes and to solve this, we decided to create a discord bot that integrates Google Calendar's API; to make sure that they are able to keep track of all their important dates/reminders. The bot also allows for users to manually add/delete events and are subsequently reminded(@user) when the time comes to attend the event.
How we built it
Why discord? The most popular instant messaging and digital distribution platform for students right now is discord! As such it made sense to create something that's integrated with what most students are using for their online communication and networking. We decided to utilize MongoDB as our database for storing user data/events. Primary because one of our teammates, Suka, had a bit of prior experience working with this database program and was able to guide us on how to implement it. Finally, we utilized Heroku, a cloud-based platform that allowed us to deploy and manage our bot instead of hosting it locally on one of our team member's pc. We chose Heroku due to it being free to use and it also collabs with Github, specifically the student pack, so we used that to our advantage!
Unfortunately, our design options are slightly limited with a discord bot. Yet despite this small annoyance, our bot outputs a clean and easy-to-read embedded message that clearly details your name, the time of your event(s), and their details. The commands we made are all very straightforward and if you ever need help with the format of your commands, we made a +help command that lists a menu with a list of the bot's commands and if applicable, what parameters they take.
Discord is free to use application which means that our bot is completely free to use on any server. Our GitHub repository for Event Reminder is public and it's an open-source project which means that anyone is free to change, optimize & play with our code!
MVP Minimum Viable Product
For the most part, we were able to allow functionality for our users to : i) Add one time, same day events ii) Receive reminders up to 5 minutes prior to the event, as well as when the event start iii) Create weekly recurring events iv) Authorize themselves using Google Calendar API v) Import their Calendar Events and display them
Challenges we ran into
Being newcomers and having limited time to complete a working and useful hack was a challenge. Having to balance our exams and work on our RUHacks project was a major hurdle. We had to make sure that we were accommodating sufficient time to our education first, therefore not compromising our exams. It's Saturday morning, we only have two days now and time is of the essence, we were able to identify a problem and come up with a solution! Now to actually starting our hack, most of us had a basic knowledge of how to make a discord bot, which did present a small hurdle in learning the syntax and how to use one properly. Nonetheless, as a team, we quickly overcame this setback and went back to completing our hackathon journey.
Now it was time to work on storing the user's events and hosting the bot! Having never worked with any database program, using MongoDB was our biggest challenge. We had to learn an entirely new skill and apply it successfully in just 1.5 days and we worked continuously for hours to make sure we could have a finished product. As for hosting the bot, we utilized Heroku and had much of the same difficulties but our team member Charr was able to accomplish most of the work and was our aid in fully hosting our bot on the cloud!
Accomplishments that we're proud of
Most of us had very little experience in creating a functional discord bot. Regardless of our lack of experience we persevered and accomplished what we came to make. Then watching our idea become reality was a massive source of pride and relief for each of us! Despite not having the most time to work on our bot, we're extremely proud of the work we've done in such a short time. Especially, the dedication from each of us to learn new technical skills and use new software in order to apply our knowledge at this year's Hackathon!
What we learned
We learned that working together as a team on a project produces such amazing results. Being able to support one another when we get stuck on a problem was a highlight of this wonderful experience! Apart from our group, it was a pleasure getting to meet and talk to new people who also attended RUHacks 2021. We were able to connect with people from different countries and different coding backgrounds alike and it was a breath of fresh air to finally attend a hackathon and work on something that wasn't school-related.
What's next for Event Reminder
Our big next steps are to:
- Improve our current database methods to allow for faster retrieval/queueing through our collections
- Allow our users to save one time events beyond the same day scope
- Find a way to remind our users of their events without having to use Discord Taskloops/ without having to rely so heavily on them.
- Remind our users of recurring weekly events
- Import User Events from their Google Calendar using the Google API and save them as onetime/recurring events .