GitHub - BerMuc/questboard: A gamified family chore tracker built with React, FastAPI, and Docker. Family members claim daily and weekly chores to earn points, then redeem them for real-world rewards. Features per-player profiles, age-appropriate chore filtering, auto daily/weekly resets, and a shared backend for real-time sync across devices. · GitHub
Skip to content

About

A gamified family chore tracker built with React, FastAPI, and Docker. Family members claim daily and weekly chores to earn points, then redeem them for real-world rewards. Features per-player profiles, age-appropriate chore filtering, auto daily/weekly resets, and a shared backend for real-time sync across devices.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Questboard

Turn household chores into a pixel art RPG adventure for the whole family.

Each family member gets a hero and a daily monster to fight. Complete chores to deal damage — defeat the monster before midnight to earn gold, or it strikes back. Spend gold on rewards you've agreed on as a family.

Built to run on a kitchen tablet, locked to a browser, always-on.

Questboard main screen

Release License ko-fi


What it looks like

The interface runs fullscreen in the browser. Each player gets a card with their hero, live HP bar, and current monster. Completing chores hits the monster — chain them fast for combo damage, score a crit, or find loot drops.

Player card — hero class, gold, XP bar, crit %, streak
Monster section — animated pixel art enemy, segmented HP bar, kill = gold reward
Chore grid — daily / weekly / monthly quests shown with damage values
Dungeon map — per-player fog-of-war grid; chores earn moves, rooms hide gold, traps, and mini-bosses
Reward shop — spend gold on family rewards you configure in setup
History — full log of kills, loot drops, rewards redeemed, badges earned


Features

Feature Description
⚔ Monster battles Each player fights a unique animated monster every day
💥 Crit hits 5% base crit chance, increases as you level up
🔥 Kill streaks Multi-day streaks multiply gold rewards (up to 2×)
🎯 Combo attacks Chain chores within 8 seconds for up to 2.5× bonus
🎲 Loot drops Chance to find bonus gold or XP on any chore
🏅 Badges & titles Unlock achievements and earn a hero title
⭐ Prestige Reset XP at level 10 for a permanent gold % bonus
🗺 Dungeon map Explore a per-player fog-of-war dungeon — chores = moves
🏆 Weekly leaderboard See who earned the most gold this week
⚡ Auto-resets Daily/weekly/monthly chores reset at exactly the right time
🌙 Overnight penalty Fail to kill your monster and lose gold at midnight
👥 Up to 6 players Each with their own hero, monster, gold, XP, and dungeon
📱 Kids & adults modes Separate difficulty scaling — kids get easier monsters
🎮 CRT overlay Optional scanline filter for maximum retro vibes

Install on Home Assistant

Step 1 — Run the container

In the HA Terminal add-on:

mkdir -p /mnt/data/supervisor/questboard/data
docker run -d --restart unless-stopped -p 8099:8099 \
  -v /mnt/data/supervisor/questboard/data:/data \
  ghcr.io/thillygooth/questboard:latest

Step 2 — Add to the HA sidebar

In configuration.yaml (use the File Editor add-on):

panel_iframe:
  questboard:
    title: "Questboard"
    url: "http://<your-ha-ip>:8099"
    icon: mdi:sword-cross
    require_admin: false

Replace <your-ha-ip> with your Home Assistant IP (e.g. 192.168.1.34). Find it under Settings → System → Network.

Restart HA (Settings → System → Restart). Questboard appears in your sidebar.


Manual Install (Docker)

mkdir -p /opt/questboard/data
docker run -d --restart unless-stopped -p 8099:8099 \
  -v /opt/questboard/data:/data \
  ghcr.io/thillygooth/questboard:latest

Open http://localhost:8099.

Use any writable absolute path for the data volume. On Home Assistant OS use /mnt/data/supervisor/questboard/data instead of /opt/questboard/data since most of the filesystem is read-only.


Running on a Separate Host

Questboard is a standalone web app — no connection to Home Assistant required. Run it on any machine on your network.

panel_iframe:
  questboard:
    title: "Questboard"
    url: "http://<docker-host-ip>:8099"
    icon: mdi:sword-cross
    require_admin: false

Replace <docker-host-ip> with the IP of whichever machine is running the container.


First-Run Setup

A setup wizard runs the first time you open the app:

  1. Set the number of players (1–6)
  2. For each player: name, difficulty (kids / adults), avatar class
  3. Choose which chores to track — toggle any on/off, set custom values, add your own
  4. Configure the reward shop — enable/disable rewards, set custom costs
  5. Toggle the CRT scanline overlay on or off

Development

# Frontend (hot-reload dev server on :5174)
cd frontend && npm install && npm run dev

# Backend (auto-reload API server on :5050)
cd backend && pip install -r requirements.txt
uvicorn main:app --reload --port 5050

The dev server proxies /api/* to the backend automatically.


License

MIT — free to use, fork, and share.

Sprite assets from OpenGameArt.org under CC-BY / CC0 licenses. Font: Pixelated Elegance by GGBotNet (CC0).

About

A gamified family chore tracker built with React, FastAPI, and Docker. Family members claim daily and weekly chores to earn points, then redeem them for real-world rewards. Features per-player profiles, age-appropriate chore filtering, auto daily/weekly resets, and a shared backend for real-time sync across devices.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages