Inspiration

Coming from Japan and Taiwan to Canada for our Co-op programs, all of our team members currently live in shared houses. We personally experienced the subtle tensions of housemate dynamics—especially when it comes to keeping shared spaces clean. Reminding housemates to do chores often feels uncomfortable, leading many to stay silent to avoid conflict.

We realized that nagging creates friction, but shared progress creates connection. We quickly reached a consensus: what if we transformed daily household responsibilities into a cooperative, rewarding game? That is how RoomBloom was born—a cooperative web app where housemates care for their home by raising a shared virtual pet beaver together.


What it does

RoomBloom is a cooperative, real-time web application designed for housemates to keep shared living spaces clean and harmonious without the friction of awkward reminders. By turning daily household responsibilities into a shared pet-raising experience, RoomBloom transforms chore routines into a fun, rewarding team effort.

Key Features

  • Co-op Pet Growth
    Housemates work together to take care of a virtual pet. Every completed chore grants experience points that help the pet level up and evolve.

  • Shared Point Economy & Room Customization Earning points from chores allows housemates to unlock and purchase cozy decorations—such as rugs and wallpapers—to customize their shared virtual room together.


How we built it

We structured our workflow efficiently with a balanced team of two backend engineers and one UI/UX & frontend designer:

  1. Ideation & MVP Scope
    We defined our core value proposition—making chores visible and enjoyable without high-maintenance overhead.

  2. UI/UX Design
    Our designer mapped out the cooperative user journey, creating intuitive interfaces for the shared room, chore log, and beaver growth animations.

  3. Backend Structure Design
    Built with Java 25 and Spring Boot. To ensure clean maintainability, we strictly separated domain models by extracting HomePet and RoomChore into independent classes.

  4. Full-Stack Integration & Decoupling
    Refactored the UI from client-side state manipulation to a strictly API-driven reactive view, ensuring all frontend renders reflect the real-time snapshot returned by the Spring Boot backend.


Challenges we ran into

One of our main challenges was integrating a frontend prototype that relied on local browser state with a backend that owns the room’s state. We updated the UI to render from API snapshots, mapped the frontend’s chore buttons to backend chore IDs, and used Server-Sent Events to keep connected clients in sync. This taught us to treat the API contract as the source of truth and to handle asynchronous updates explicitly.


What's next for RoomBloom

RoomBloom is currently a single-room prototype with in-memory state. Our next steps focus on making it persistent, configurable, and ready to support multiple households:

  • Room ID System & Instant Multi-Room Access

Introduce unique Room Codes/IDs so housemates can create or join specific shared rooms easily, allowing multiple households to use RoomBloom independently on the same platform.

  • Pet Customization & Onboarding Flow

Expand beyond our default beaver! Allow new rooms to choose from a variety of virtual pets (e.g., cats, sea otters) and personalize their names during room setup.

  • Dynamic & Customized Chore Management

Support fully customizable chore lists, allowing housemates to add, edit, or remove chores tailored to their specific shared space needs (e.g., watering plants, feeding pets, taking out recycling).

  • Anti-Farming Mechanics & Advanced Cooldowns

Implement customizable daily completion limits and dynamic cooldown intervals for each chore to prevent "point farming." The UI will dynamically update chore button states (e.g., disabled status, countdown indicators) based on backend cooldown validation.

  • Persistent Database Storage & State Management
    Transition from in-memory state storage to a relational database (e.g., PostgreSQL / MySQL) to securely store and manage room states, earned points, chore histories, and unlocked decorations across server restarts.
Share this project:

Updates

Submission history