Inspiration
After seeing countless messages in common hostel chats, having to sit at the laundry room waiting for people to collect, and having forgotten my laundry myself, ResiWash is my solution to solve all of these problems and potentially more.
What it does
On the surface, ResiWash is a simple laundry tracker that has been built many times before. It allows residents to claim machines and set its cycle time. The backend then sets its status to "in use", and everyone else can see it. After the cycle time is over, the backend then sets it back to "available", and this status is once again visible for all to see.
However, due to our approach to go with a native app, we get access to a tremendous amount of functionality. For example, we can integrate directly with and start phones' system timer (Android, iOS 26+, <iOS26 uses Live Activities). This allows residents to have a persistent visual reminder of when their laundry will be done, rather than opaque messages every X minutes. Additionally, we can use NFC tags that directly claim a machine, eliminating the need for QR code scanning (though it's available as a fallback) or manual machine selection.
How we built it
ResiWash is built with NodeJS on the backend, accompanied by PostgresSQL to store machine data. Firebase is used to send out notifications. Flutter on the frontend is used, so that we only need to maintain one codebase for both Android and iOS
Challenges we ran into
Due to our inexperience with Flutter, we had to spend a lot of time debugging Flutter-specific issues. To overcome this, we used AI such as Github Copilot and Claude to explain issues and suggest solutions. We also ran into an issue where our NFC tags kept not being detected on the laundry machines. After consulting AI for possible reasons, we learned that the metal surfaces of the laundry machines interfered with the tags. Thus, we bought the suggested "anti-metal" NFC tags, which have a shielding bottom layer, preventing interference.
Accomplishments that we're proud of
We successfully managed to implement a full flow for the main user actions (claiming, unclaiming, checking). We also managed to deploy onto the Play & App Store, passing all Google and Apple checks. This was quite an achievement given our inexperience.
What we learned
Coming from a web frontend background, mobile apps are way more powerful. However, there is a lot of work needed to optimize and handle mobile apps, as well as having access to features such as notifications. Apps also have a lot more states they can be in (suspended, killed, foreground, background) which necessitated a lot of learning and handling.
What's next for ResiWash
We plan to roll out this to RVRC's laundry rooms. Additionally, we will add more features such as issue reporting, triggering reminders (so other people can remind the person to clear their laundry), and a leaderboard for time taken to clear their laundry after it is done, so residents are incentivized to clear their laundry quickly.
Log in or sign up for Devpost to join the conversation.