Inspiration

As agreed upon by ourselves and any other student we have ever spoken with, the water dispensed from the local water fountains and taps are greatly varying in quality. As non-local students who recently moved to Waterloo, we have had to make do by a variety of ways. First, we travel to the locations on campus that upper years have told us to be decent. Second, our families loaded us up with crates of store-bought water bottles before we moved in. Obviously, these strategies have been lacking in both efficiency, sustainability, and ethics. We know this is an issue common to students, so we wanted to create an online application that shows the best water fountains from which we can fill reusable bottles.

What it does

A student can make their account with their WatIAm username, and they can access a map with all of the water fountains on campus. Clicking on each plotted point will give the water fountains' names, locations, and ratings as given by all other users of the mobile web-app. Upon selecting the option of rating, or by scanning a QR code with their phones, students can give a 5-star rating of the water they got from any fountain. There is also space to leave comments to describe the experience (e.g. "water was slimy", "water was cloudy", "water was thick and warm BLEGH"). The dahsboard also displays the number of plastic bottles the student has saved by refilling their water bottles and submitting ratings.

Since students are deterred from drinking the water from fountains (despite it being safe to drink), they resort to buying bottles of water. These single-use plastics are not sustainable for the environment, which continues to negatively impact Waterloo's ecological footprint. Even at many events, like TechNova, crates upon crates of plastic water bottles are discarded.

How we built it

Using a Streamlit backend as the frame for our project, we implemented several packages that ran in conjunction with this API's built-in functions. Namely, the Folium package created the campus map on which we plotted the fountains. Pandas were imported to run with MySQL, which made the database of ratings, fountains, and user accounts. Finally, strips of CSS and HTML code were inputted with Markdown into the Python files, which allowed for formatting the UI and increasing the quality of our User Experience.

Challenges we ran into

While it was easy for us to keep up to date with all of our file versions with Git and organized role allocation, only one of our computers had access to the MySQL database and we could not figure out how to give remote access to other computers. Thus, near the end of the Hacking Time, we could only test changes that used our database from one laptop.

Accomplishments that we're proud of

We thought that it was cool that once we got our SQL database integrated into Streamlit, and it took us quite some time to debug errors.

What we learned

It was our first using both Streamlit and MySQL, and we learned how to effectively use Git to edit up-to-date code over all of our devices.

What's next for WaterWorks

We aim to fully implement this idea across campus, putting up physical QR codes at as many water fountains as possible. This way, the students who have access to our mobile webapp can populate the map with accurate and up to date information about all water fountains on campus. Our project can be useful up until the City of Waterloo improves the overall quality of water dispensed out of their pipes.

Built With

Share this project:

Updates