Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
Inspiration… ChoreWheel was inspired by a universal roommate problem: chores are shared, but fairness rarely is. After watching conflict come from “I did it last time” arguments, I wanted a system that makes fairness automatic—then turns doing chores into something people actually enjoy.
Headline ChoreWheel — a fair chore spin wheel that rewards collaboration (offline-first + optional real-time sync).
What I learned / How I built it… I built ChoreWheel as an offline-first React + TypeScript web app. The core idea is a fair-weighted spin wheel: the more times a chore has been completed, the less likely it is to be re-assigned, reducing repeat burdens. Chore completion updates a points + streak economy, records progress in a history log, and enables peer-to-peer trading when schedules collide.
For technical realism, I designed state around a single React RoomContext, using localStorage as the source of truth and treating Firebase as an optional synchronization layer. To prevent sync loops, each browser tab uses a unique TAB_ID, and updates merge with last-write-wins timestamps. Finally, I added PWA support so the experience works even with poor connectivity.
Challenges… The hardest part was making real-time sync safe without a backend server: handling echo prevention, conflict resolution, and keeping the app responsive while animating the wheel at 60fps.
Built with React 19 + TypeScript Vite 8 Custom sketchbook CSS design system Canvas API (wheel) + Web Audio API (sounds) + canvas-confetti PWA (service worker + web manifest) localStorage (offline-first) Optional Firebase Realtime Database (room sync) Try it out links Demo URL: https://uoe-summer-of-codechorewheel.netlify.app Default room code: HOMEY9 GitHub repo: add your repo link here (if you share it, I’ll format it)
What we learned
What's next for ChoreWheel
Built With
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.