Caddy Money is a restricted spending wallet for trusted friends and families. User A can top up their balance and send money that User B may spend only in approved categories and stores. This repository contains the consumer beta build with a Fastify + Prisma API and a React PWA web client.
- Node.js 20+
- pnpm 8+
- Docker (for local stack)
Copy the provided .env.example files into .env files under /api and /web and adjust secrets if needed.
pnpm install --filter ./api
pnpm install --filter ./webcd api
pnpm prisma migrate deploy
pnpm prisma db seeddocker compose up --build- API: http://localhost:3001 (OpenAPI at
/docs) - Web PWA: http://localhost:3000 (mobile-first layout)
- Mailhog: http://localhost:8025
pnpm --filter api test
pnpm --filter web testThe API exposes a dev command pnpm expiry:run to mark expired restricted funds and refund the original sender.
- Login as Alice (sender) via magic link, top up the wallet, and send restricted money to Bob.
- Login as Bob (recipient) to view category balances, find nearby stores, pay with a QR code, and request more funds.
- Review activity feeds for notifications about top-ups, requests, approvals, payments, and expiries.
Screenshots and a full walkthrough can be added once the stack is running locally.