Inspiration
Coordinating rent payment is a chore. One of many chores that you and your roommates have to take care of to peacefully coexist. Nobody wants to clean the bathroom or take out the trash, but it has to get done.
What it does
RoomEase lets users define what chores have to be done and how frequently. These chores get randomly distributed amongst all the roommates. If you get a chore you particularly dislike, you can propose to trade with your roommate. You can swap it for another chore, offer to pay someone money to do it for you, or both! At the end of the month, our scheduled job runner checks how much each user has to pay for rent after factoring in many exchanges, and automatically transfers money from each of your roommates to whoever pays the rent. This saves you from having to remind your buddies that they owe you money if they do not have the right amount on them. It's completely automatic, and happens as a part of your normal rent payment so it's very convenient.
How we built it
Our project relies on two behind-the-scene mechanics in order to smoothly keep track of chore assignments as well as charge everyone the correct amount. We used Firebase in order to have a fast database easily accessible from both the web and our native iOS application, as well as our cron server. We used React in order to write very similar code for both of our client platforms. We used React-Router and Redux in order to write modular, organized code. In order to automate payments, we used Nessie's API to transfer funds between peers at the end of each rent cycle.
Challenges we ran into
Firebase is a great database for quick, synchronized interactions between many concurrent users, but lacks a degree of structure that other databases like SQL or Mongo offer. We had anticipated being able to whip up a quick Firebase server, and then devote ourselves entirely to the front end user experience and the back end automation. Instead we commonly found ourselves making mistakes through minor typos and inconsistencies with names, which would have thrown an error in another database.
Accomplishments that we're proud of
We all feel like we learned a lot about the technologies that we used, which was our primary goal coming into this hackathon. We were also able to divide our workload pretty well, and continually had all three of us working on something, never waiting on another team member in order to be productive. We even managed to extrapolate a lot of our database interaction logic into a single file full of useful functions, allowing one person to work on functionality and testing that functionality, while the other two developed the separate front ends that interacted with the same back end. We were able to use our time well, and really make the most out of this hackathon.
What we learned
This was our first project using React, React-Native, Redux, and cron, as well as our first large project using Firebase. We are glad that we were able to learn so much in a single weekend to be able to make a fullstack application that actually has a purpose.
What's next for room-ease
There is admittedly a lot of improvement for web UI improvability, as well as general polishing that could be improved.

Log in or sign up for Devpost to join the conversation.