Development

Work on TaskBandit locally.

Use the repo docs for deep implementation details; this page is the high-level setup map.

Required tools

  • Docker Desktop for PostgreSQL and container validation.
  • Node.js 24 or later with npm for the server and web workspaces.
  • JDK 17+ plus Android Studio or a Gradle-compatible Android toolchain for the native app.

Local web development

cd apps/web
npm install
npm run dev:client
npm run dev:admin

The production web image serves both entrypoints together, but local development can still run the client and admin Vite dev servers separately.

Local server development

cd apps/server
npm install
npm run prisma:generate
npm run build
npm run test

When working on the rewards system, run prisma migrate dev to apply any pending migrations before generating the client:

npm run prisma:migrate:dev
npm run prisma:generate

Key server modules relevant to recent features:

  • src/modules/rewards/ โ€” rewards catalogue, redemption flow, eligibility enforcement, approval/rejection, and operator import endpoints.
  • src/modules/bootstrap/starter-rewards.catalog.ts โ€” the nine starter rewards seeded into every new household (all disabled by default).
  • src/modules/achievements/ โ€” achievement milestone definitions and unlock logic.

Source repository

Implementation docs, API notes, and current code live in kriziw/TaskBandit.