PocketMoney
Mobile App2024

POCKETMONEY

Flutter + Node.js + MongoDB + AWS — parents assign tasks for points; kids redeem in a parent-curated toy marketplace.

3
Household roles modeled
2
Mobile app stores
1
Points → rewards ledger
SCROLL
Client
Domain
Mobile / Family
Platform
Flutter
Duration
Core Stack
Flutter · Node.js · MongoDB · AWS
The Brief

THE
PROBLEM

Parents assign chores and rewards; children complete tasks to earn points and redeem in a parent-curated toy and treat marketplace. The product needed a trustworthy closed loop — no surprise charges, clear roles, and simple UX for kids while parents retain inventory control.

Flutter client talks to a Node.js API with MongoDB models for households, members, tasks, ledgers, and marketplace SKUs; AWS S3 for uploads with server-issued URLs; notifications and email hooks for parent approvals where needed.

Core Engineering Challenge

Household RBAC (parent vs child), ledger integrity for points, redemption against stock, media for task proof, and AWS-hosted assets without complicating the mobile client with presign logic everywhere.

Tasks→Points→Rewards
Model
Extended stack
mobile
Flutter
backend
Node.js
database
MongoDB
cloud
AWS
pocketmoney
pocketmoney
How we built it

THE ARCHITECTURE

01
Households & roles

Invite parents, attach children, enforce route-level permissions in the API.

Node.jsMongoDB
02
Task lifecycle

Create, assign, complete, and approve tasks with optional photo proof uploaded to S3.

FlutterAWS S3
03
Points ledger

Append-only style ledger entries for earns, holds, and spends to avoid race conditions.

MongoDB
04
Marketplace

Parents seed SKUs; kids browse and redeem; stock decrements atomically with redemption records.

FlutterNode.js
05
Notifications

Push/email nudges for approvals and completed chores to keep parents in the loop.

FCMNode.js
System Data Flow
Ingestion
CrawlerContent Hash10K+ pages
Processing
ChunkerDeduplicatorEmbedding API
Storage
pgvectorPostgreSQLRedis Cache
Auth
Identity ProviderJWT BridgeSessions
Query
HNSW SearchRe-rankerLLM Stream
Delivery
Web AppMobile AppUsers
What we delivered

THE RESULTS

Tasks→Points→Rewards

Closed-loop kid marketplace: tasks mint points, redemptions debit ledgers and decrement parent-approved inventory — designed so support could explain any balance from immutable transaction rows in MongoDB.

Tasks→Points→Rewards
Model

Closed-loop kid marketplace: tasks mint points, redemptions debit ledgers and decrement parent-approved inventory — designed so support could explain any balance from immutable transaction rows in MongoDB.

Visual documentation

SCREENS &
INTERFACES

pocketmoney2
pocketmoney2
pocketmoney3
pocketmoney3
pocketmoney66
pocketmoney66
Engineering decisions

TECH
DEEP DIVE

LED
Ledger over floating balances

Explicit transactions made disputes and “where did my points go?” support trivial.

Server-side S3 URLs kept secrets off devices while Flutter stayed thin.

AWS
AWS for media

Durable object storage for task photos and catalog images with CDN-friendly URLs.

MongoDB’s flexible schema fit evolving reward types without migrations every sprint.

Next Case Study
Mobile App
SafeLocket

Personal safety & SOS

FlutterGoogle MapsFirebase
Start a project

LET'S
BUILD
SOMETHING.

We take on a small number of projects at a time. If the problem is hard, we're interested.

Email
hello@techmusketeers.com
Response time
Within 24 hours
Availability
Open for new projects · 2025