Roommate chore-week calendar
Workspace is empty. This will be a new Django project, e.g. choreweek.
Locked scope
- Who: roommates (3+ adults)
- Job: fair calendar rotation — one person owns all chores that week
- Page: whose week it is + a static reminder list (trash, dishes, bathroom, …). No checkboxes, no history, no login
- Swap: pick two weeks and they swap immediately
- Setup: names, start date, and chore list hardcoded in Python
- Save:
localStorageonly — Bob will not see Alice’s swap on another device - Stack: Django (templates + a little JavaScript)
How it should work
flowchart LR
config[Hardcoded config] --> page[Shared calendar page]
page --> current[This week owner]
page --> upcoming[Upcoming weeks]
page --> list[Static chore list]
page --> swap[Pick two weeks]
swap --> local[localStorage]
- Open the site URL (no accounts).
- See this week’s owner, the next several weeks, and the fixed chore list.
- To trade, select two weeks and confirm. The calendar reorders in this browser only.
- Changing roommates or chores means editing the Python config and restarting.
Week assignment without swaps: owner = roommates[(week_index - start_week) % n]. Swaps are a local overlay on that default rotation.
Out of scope (v1)
Accounts, join codes, shared/sync’d swaps, missed-week debt, per-chore tracking, notifications, drag-and-drop, mobile app, calendar sync.
Build
- Django project + one app (
calendarorweeks) - Config module, e.g.
ROOMMATES,START_DATE,CHORES - One view + template: current week, upcoming weeks, chore list, swap controls
- Small JS: instant swap, persist/restore from
localStorage - Minimal CSS so it is readable on a phone browser
No Django models or auth for v1. The server only renders the default rotation; the browser stores swaps.