This past July a group of friends and I were introduced to Canada's water crisis. That may sound confusing at first because we don't often consider Canada to have a water crisis. We have the most fresh water in the world, how could we be in a crisis?? However as the effects of climate change become more clear, our own water security is starting to be challenged, and a major contributor to this threat is Canadian's water consumption.
Water literacy among Canadians is very low, many only thinking about their water consumption when staring at their hydro bills which come in every 2-3 months. There needs to be a better way... Enter: WATER WHEEL!
What it does
Water wheel is an app that connects to water flow sensors around your house to help you keep track of your water usage. The intuitive design of the sensors allow for easy installation to any faucet or tap around the house, making usage fairly simple. Meanwhile, the app provides real time updates on your usage at any point in the day, allowing for you to be conscious about how you're using your water. By simply creating a medium of awareness, people are much more likely to take actions. The modular design also allows you to pin point where exactly you're using the most water around your house, allowing for you to pin point specific water usage behaviors you can use to improve.
How we built it
The app was constructed with flutter on Android Studio, and was written in Dart. The Water sensor was built on tinkercad and the logo and graph on the app where constructed in Figma.
Challenges we ran into
This was my first time working with flutter, so throughout the weekend, I found myself struggling with simply implementing many aspects of the app. One of the most memorable had to be with data transfers between apps and figuring out how to implement that. Along with this, I had trouble with the front end. With my limited experience, I have found myself drawn to more back end tasks, such as working on interactions within the app rather than the user interface, however, this project forced me out of my comfort zone. While implementing the front end was fairly intuitive thanks to flutter's structure, I still had trouble formatting many pages correctly, relying heavily on trial and error.
However beyond the technical challenges, I found the experience of working alone to also be a challenge. This was my first solo hack, so I was constantly jumping around throughout the hackathon trying to work on different aspects of the project. I've always worked in teams, so I've always had people asking me about what I was doing, or if I was done a certain feature. Without those reminders, I found myself drifting off much more, or budgeting my time. I remember when the hackathon started, I spent almost and hour and a half trying to get the logo just right. While this was not uncommon in my group, this took away time from me working on the front end, or even implementing the database.
Accomplishments that we're proud of
I'm proud that I was able to get something to present at this hackathon. This experience was extremely new to me, and I found myself enjoying it immensely. While I did not have my usual companionship, I was able to work at my own pace, and really focus on learning more than anything else. While I was unfortunately not able to implement the Firebase Realtime Database, I still was able to apply some data transfer concepts within the app.
What we learned
Through countless tutorials, I was able to gain a steady grasp of creating widgets in flutter, as well as transferring data between them.
What's next for Water Wheel
- Addition of Firebase Real Time Database and Authentication Features
- Leaderboard for people to compete against each other
- Application of more robust analytics.