Inspiration

Our inspiration was our own lives. We found that our mom had to constantly remind us to drink water -- otherwise we could go days drinking minimal amounts. It wasn't healthy, and was clearly showing through symptoms of chronic dehydration. We decided to make something that would remind kids (or adults) just like us to stay hydrated -- Ozzie! The name "Ozzie" comes from the abbreviated form of fluid ounces, fl oz, which is what liquids such as water are measured in.

What it does

Ozzie takes your weight, bedtime & wake time, and exercise minutes per day into a formula that determines how much water you should be drinking in a day. It divides this total amount by however many times you want to be reminded in a day, and sends reminders accordingly! These reminders are sent through Discord, a messaging platform frequently used by members of the gaming community. We purposefully targeted Discord to create our bot in since many gamers forget to stay properly hydrated. A website was also created to accompany the bot!

How we built it

Ozzie, the Discord Bot

Ozzie was built using Python 3 via Repl.it. The only reference used was a Stack Overflow page for a loop that sent reminders at specific times.

Ozzie's Website

Ozzie's website was built using HTML/CSS. There were no templates, references, or Bootstrap/premade code used in the making of the website. Figma was used to create the initial design, and then the design was replicated using HTML/CSS via VS Code. All code was done locally on VS Code, and once the entire website was finished, committed to Github.

Challenges we ran into

Some challenges that we ran into building Ozzie was that even though the basic language was Python, Discord had many syntax changes and/or special commands that were only found on the messaging platform. This made it hard to find resources online that were specialized for Discord.

  • Reminder System: The reminder system consisted of a thread that checked the time, sent messages at the correct times, and was sleeping otherwise. Though the system for sending at the correct times worked, we were unable to find a command that actually was able to send the reminder.
    • We found that Discord has measures in place to prevent a bot from sending an message without an event, due to spam concerns.
    • Given more time, we believe we may have been able to find a way to implement our reminder system successfully There was also a bug in the setup that caused it to send two messages at once, but this was determined to happen because the bot took its own message as input, and fixed it by creating a “stop point” that required user input to continue.

No challenges were ran into while coding the website.

Accomplishments that we're proud of

An accomplishment that we're proud of is that Ozzie is our first Discord bot to utilize embeds and timers. The reminders are specialized for each user, and many variables had to be used to make it as customizable as possible.

What we learned

On the technical side, we learnt We learnt so much more about the importance of drinking water after doing this project! Of course, our parents always bugged us to drink water, but once you learn the exact statistics and repercussions of not drinking water, it gives you a deeper level of understanding.

What's next for Ozzie

Things that we hope Ozzie can do in the future are:

  • Be available outside of Discord -- maybe as a downloadable program or app, since not everyone has access to Discord
  • Have reactions trigger a message (instead of typing YES when you drink water, for simplicity, you should be able to react to a message to let Ozzie know; likewise for NO also.)
  • Have a way to input water you drank outside of your reminders
  • A recap feature that lets you know how much water you drank during the day, as well as how many days in a month/year you met your goal of drinking XX.X fl oz of water
  • Add more features on the website; maybe a calendar that shows your progress (basically connect the website to the user's info; work on combining HTML & Python)

Built With

Share this project:

Updates