Inspiration

Our inspiration came from Mesa Court and Middle Earth residents at UCI. We find out that there're several problems that dramatically extended the time for residents to do laundry in their hall. One of the problem is that many residents don't take out their laundry after it's ready, and another problem is that residents find it to be inconvenient to go to laundry machine several times just to check which machine is open for use. We are motivated to solve these two problems by implementing an application that allows residents to be reminded to pick up their laundry when it's ready, and allows residents to check the status of each laundry machines remotely.

What it does

ZotWash is a web app that tracks the statuses of laundry machines in dorms. With ZotWash, residents will be able to check if their laundry is done without having to walk all the way to laundry rooms.

How we built it

The layout of each laundry room was implemented using HTML, CSS. To format the layout to our liking, we used HTML and CSS to create a series of nested boxes. We added padding to each of those boxes until it was in the correct position. The home page was implemented using bootstrap. We took a template from bootstrap and built upon that.

How we built it

We built our backend in Django/Python, and frontend in HTML/CSS/Javascript/Bootstrap. Our backend is centered around our important models: Laundry, Dryer, Floor, UserProfile, and Notifications System. We used ModelForms to take in information from the user, depending on the request (POST or GET), and those forms would save the information into our models. They would also be used to update the information as well. We used the Django registration and sign in feature to implement a registration/signin feature, and all our functions would call our HTML files to display the frontend as well.

Challenges we ran into

Our biggest challenge was when we had to edit our models midway of our project. We wanted to add a custom field to the built in User Model, but Django doesn't allow this so we had to create a whole new model called UserProfile which would basically extend, or inherit the User Model. The real problem arose when we tried to migrate this but we realized all our data in our database didn't reflect the changes we made in our models. Therefore this sparked 2-3 hours of constant debugging and researching until we came to the solution of our problem: We had to delete all our migration files, sqlite database, and manually delete every data in our database for us to run our initial migrations.

Accomplishments that we're proud of

Because most of our team members are beginners, we are proud about the fact that we were able to implement a complete application with essential functionality that we wanted. These functionality includes learning the basic idea about backend and be able to plan and design our application with some potential implementation problems in mind. We are also very proud and appreciate each other for dedicated in learning, explaining ideas that we learned, and actively communicating for the most ideal implementation. Lastly, we are proud of being able to overcome the challenges that we have in implementing the database, storing user information, connecting those information, and updating the frontend (the laundry room layout map) accordingly.

What we learned

The majority of our team was new to hackathons. So to us, the most daunting task was having to build a project from the ground up. Though it was a challenge to learn the tools needed to contribute to the project at first, we were able to overcome that initial roadblock and learn a lot along the way. As we built both the frontend and the backend portion of the web app, we were given the opportunity to learn tools such as Django, HTML, CSS, and bootstrap.

What's next for ZotWash

There are several features we wish we could've implemented but couldn't because of time. One of them is to have this application accessible throughout all the dorms at UCI, including Middle Earth towers, Middle Earth and mesa courts. Another feature would have a countdown timer, where it would be visible to all users how long each machine has until finishes washing/drying. This feature would be related to a notification system, where when the machine is done the website would send a notification through email to the user. Ideally, we would like a text message notification, but due to messaging rates and costs, we decided that an email notification would suit our needs the best. We'll also make sure that only the user who checked in a specific machine can release it.

Share this project:

Updates