Clients

Admin UI, web/PWA client, and Android.

TaskBandit keeps household administration separate from day-to-day chore work, while surfacing the right features for each role.

Client web UI and PWA

The client UI is served at /. It is browser-first, works on desktop and mobile browsers, and can be installed as a PWA where the browser supports it. Children, parents, and admin members all use the same URL; the interface adapts to their role.

  • Chores — today's assigned tasks, overdue section (missed chores surfaced with prominent alerting so nothing slips), completion flow, proof photo upload where required, and takeover requests to hand off or cover another member's chore.
  • Rewards shop — a catalogue of enabled rewards browsable by category. Each card shows the reward title, description, point cost, and an eligibility badge (child-only, adult-only, or available to all). Household members can redeem rewards for points; a confirmation dialog shows the current balance and what will remain after redemption. A history tab lists past requests with their approval status and, for daily-exclusive rewards, the booked date. Daily-exclusive reward cards also show upcoming bookings by other household members so everyone can see which dates are already taken.
  • Achievements — unlockable milestones shown as a panel or badge collection. Achievements are earned by streaks, completing a perfect day, or reaching total completion milestones. Unlocked achievements are visible to the whole household on the leaderboard.
  • Points and streaks — members earn points for each completed chore. A streak counter tracks consecutive days with at least one completion and appears on the leaderboard alongside total points.
  • Leaderboard — household ranking by points and current streaks, visible to all members.
  • Group, type, and sub-type labels — chore cards display the template hierarchy so the selected structure is visible in day-to-day use.
  • Live sync — foreground sync while the app is open; optional background Web Push when VAPID keys are configured.
  • Settings — end-user language, theme, notification preferences, and device management.

Admin web UI

The admin UI is served at /admin and uses session storage so admin access is scoped to the current browser session. Parent members can access an expanded view of household management pages while admins have full control including system and auth configuration.

  • Household settings — member management, roles, reward approval mode, achievement toggles, and overdue penalty settings.
  • Templates — a compact grouped editor with search, group/type/sub-type browsing, and language tabs (English, German, Hungarian) for maintaining translated chore content without excessive vertical scrolling. Chore chains (follow-up triggers) are configured here.
  • Rewards Manager — manage the household reward catalogue:
    • Browse starter and custom rewards grouped by category (screen time, treat, activity, privilege, allowance, custom).
    • Enable or disable individual rewards. The built-in starter catalogue ships twenty-three rewards across six categories, all disabled by default; enable only the ones that fit your household.
    • Create fully custom rewards with point cost, optional per-child redemption limit, and optional cooldown period.
    • Set per-reward eligibility: child-only, adult-only, or available to all members.
    • Set the workflow type: Standard for normal redemptions or Daily exclusive for once-per-date household rewards. Daily-exclusive rewards let members book a future date; only one booking per date is allowed across the whole household.
    • Approval queue — review pending redemption requests submitted by household members. Approve to deduct points and notify the member, or reject with an optional note. The queue badge shows the count of pending requests.
    • Household setting: Require reward approval — when disabled, redemptions are approved and points deducted automatically on submission.
  • Achievements — configure which achievement milestones are active and at what thresholds (streak length, perfect-day count, total completions).
  • System — auth provider configuration, SMTP setup, backup-readiness panel, notification recovery, and runtime logs.

Native Android app

The Android app provides a native experience alongside the browser/PWA client. It talks directly to the API server and is built with Kotlin and Jetpack Compose.

  • Bottom navigation — children see four tabs: Chores, Leaderboard, Rewards, Settings. Parents and admins see five: Chores, Leaderboard, Rewards, Create, Settings. The Rewards tab badge shows the count of pending redemption approvals for admin and parent users.
  • Rewards tab (child) — a scrollable shop with category filter chips and reward cards showing cost and eligibility. Tapping a card opens a confirmation dialog with the current balance and balance after redemption. For daily-exclusive rewards, the dialog includes a date picker (today through 14 days out) and highlights any dates already booked by other members. Upcoming bookings — yours and others' — appear as chips on the reward card. A collapsible section shows the member's redemption history.
  • Rewards tab (parent/admin) — shows the pending approval queue with approve and reject actions for each pending redemption. Full catalogue management is available in the web admin workspace.
  • Speed dial FAB — a floating action button expands to shortcuts for the most common quick actions so frequent operations stay one tap away.
  • In-app update notification — when a new APK build is available, a floating update bubble appears in the corner. Tapping it starts the download and install without leaving the app.
  • Offline queueing — chore completions and reward redemption requests submitted while offline are queued and flushed automatically when connectivity is restored.
  • Proof photos — the camera or gallery picker is available for chores that require photo evidence.
  • Takeover requests — members can request or grant coverage of another member's chore from the native interface.

Android push behavior

Android push is optional and degrades cleanly.

  • If the app is built without Firebase values, it still runs and registers as a generic notification device.
  • If the app is built with Firebase app settings, it initialises Firebase at runtime and registers an FCM token when available.
  • If the server is also configured with TASKBANDIT_FCM_ENABLED=true and a Firebase Admin service account, queued household notifications — including reward redemption requests and approvals — are delivered as real Android push notifications.

Notification priorities

TaskBandit treats mobile and browser push as the primary delivery path for household activity: chore assignments, overdue alerts, reward redemption requests, reward approvals and rejections, exclusive reward booking notifications (sent to all household members when a daily-exclusive reward is claimed), and achievement unlocks. SMTP email is intended for account recovery, admin-style messages such as invites, and fallback delivery when no push-ready device is registered.