Project overview
STEMQuiz is a cross-platform competitive learning product for timed quizzes across science, technology, engineering, and mathematics.
The product combines a React Native client with a TypeScript backend, persistent progression, subscriptions, advertising, and an administrative content system.
The challenge
Access rules and progression had to remain consistent across guest, free, and paid users without trusting client-side state.
Billing state, quiz eligibility, rewards, and leaderboard progression needed one authoritative source of truth.
The solution
Implemented server-authoritative access and progression rules, with the client rendering explicit states returned by the API.
Built the product as a shared mobile/web experience backed by PostgreSQL and operational tooling for content and user management.
My contribution
- Built the React Native and Expo client and the Express/PostgreSQL backend.
- Implemented subscription-aware access control and billing-state reconciliation.
- Delivered progression, rewards, leaderboards, lifelines, badges, experiments, and administrative workflows.
- Added production diagnostics and regression checks for safer releases.
Key features
- Timed quizzes
- Guest/free/premium access
- XP and rewards
- Leaderboards
- Badges and lifelines
- Admin content management
Technical challenges
Preventing stale or modified client state from bypassing paid access rules.
Resolved eligibility and account tier on the server for protected quiz paths and reconciled stale client sessions safely.
Keeping progression and rewards consistent under repeated requests.
Centralized progression decisions in backend services backed by persistent database state.
Architecture
- React Native and Expo client
- Express TypeScript API
- PostgreSQL with Drizzle ORM
- RevenueCat subscription integration
Outcome
Delivered a production application across iOS, Android, and web with a supporting administrative system.
Product screens



