Inspiration

This idea was brought to our attention when we realized that Salt Lake City, Utah, our hometown, is in danger because the Salt Lake is drying up. This is bad since dangerous chemicals in the soil of the lake, such as arsenic, can be released as the soil is unveiled and disturbances over time release these dangerous chemicals. The root cause of this problem is the usage of water in Utah. By making this website, we hope that water usage on a whole in Utah and other places will decrease. With this, a drought can be prevented.

What it does

Water watchers is a program designed to help you keep track of your water usage. By seeing the numbers, we hope that it will incentivize people to limit the amount of water that they use. Additionally, we have also made it a little competitive as it will further encourage the limitation of water usage. We have also implemented an AI to help people with managing their water usages. Our website is designed similarly to social media platforms. A clarification on user pages: the profile link in the navbar as of right now serves mostly as a placeholder for future functionality, like editing your own profile and adding an about me. Currently, it redirects to the public page of the current user, just like clicking on the profile of a water usage user brings you to the public page of that user.

How we built it

We started our project with an extensive planning phase. We mapped out the functionalities and user flows that we wanted to have, and researched what the most detrimental uses of water are in Utah. Using this information that we gathered, we were able to land on the idea of a website that allows users to track their water usage and compete against others. We programmed the project in python, using Flask as our web framework, and SQLite as our database to store user data.

Challenges we ran into

Most of the challenges we ran into were due to a lack of experience using specific frameworks and libraries in python. These include:

  • creating and querying a SQLite database using SQLAlchemy
  • manipulating water usage data so that it is easily visualized in a matplotlib chart
  • querying water usage data efficiently in order to quickly construct a dynamic leaderboard

Accomplishments that we're proud of

We are very happy that we were able to construct a modern website that can make a tangible, positive impact. Our data manipulation using pandas was one of our most significant achievements, as it was challenging to query the data we needed, and then perform transformations on it so it was easily visualizable. Another one of our achievements was using a database for the first time, as both of us are unfamiliar with creating websites and managing a full client and server-side interaction.

What we learned

We learned the importance of planning and scoping through our experience during this Hackathon. We restarted twice before landing on this project, as we took on projects that were way too complex for the timeframe of this event. We learned how to collaborate on a programming project, as both of our experiences programming have been primarily solo. Apart from that, we learned a lot about building websites, and different frameworks and libraries that are very useful for different tasks.

What's next for Water Watcher

In the future, we plan to implement more features that will refine the user experience and increase the impact of our app. We plan to:

  • Add an about me in user profiles
  • Allow users to edit their user profiles
  • Allow users to download their personal water usage in different formats such as .csv and .xlsx
  • Add local, national, and global scale leaderboards, for more intense competition
  • Add a money used field to every water usage, as people are more incentivized to save water when they see the cost, rather than the amount
  • Make the website more visually appealing, as it lacks visual appeal, and is primarily focused on being a functional MVP
  • Add gardening as category
Share this project:

Updates