OB is a production-style full-stack TypeScript platform for managing 2D draw operations. It includes a player-facing app, an admin console, and an API server inside one monorepo, with wallet workflows, draw lifecycle management, settlement, audit logs, realtime refresh, and deployment runbooks.
Why I Built It
I built OB to practice the kind of complexity that appears in real operational software: multiple user surfaces, controlled admin workflows, data integrity, realtime updates, and release operations.
The project goes beyond a basic CRUD app. It has separate apps for player and admin experiences, an API server split into domain modules, and operational scripts for readiness checks, backups, smoke tests, and load tests.
Architecture
OB/
console/ Admin console
player/ Player app
server/ Hono API server
shared/ Shared TypeScript codeThe backend is organized around domain modules such as wallet, wallet request, draw, bet, settlement, report, audit, realtime, and support chat. Business logic lives in service files, while routes handle HTTP boundaries and validation.
Highlights
- 20 backend modules
- 16 admin console route files
- 17 player route files
- 15 server test files
- 15 Drizzle migration files
- Production checklist, runbook, handover guide, and Cloudflare deployment guide
Core Workflows
The admin console supports users, draws, bets, wallets, ledger review, reports, risk review, audit logs, and support chat.
The player app supports signup, login, email verification, home dashboard, draw results, bet slip, wallet requests, profile, and support.
The API server handles app-scoped auth routes, role-based admin access, wallet and ledger workflows, settlement, audit logging, idempotency, realtime events, health checks, and operational scripts.
Data Integrity
The database schema models operational state directly. Money-like values are stored as integer minor units, odds are stored as integer multipliers, and workflows use explicit status enums. Ledger entries and wallet requests use uniqueness rules to reduce accidental duplicate operational actions.
What It Shows
OB shows my ability to design and build a product-shaped system: frontend apps, backend modules, database modeling, auth boundaries, admin workflows, deployment planning, and tests.