A production‑ready learning capstone that builds a complete marketplace app using:
- Mobile: Bare React Native + TypeScript
- Server: Express + TypeScript + MongoDB (Mongoose)
- Realtime: Socket.IO
- Media: S3‑compatible (MinIO in dev)
- Notifications: FCM + Notifee (free for dev)
- Payments: Provider abstraction; start with Stripe test mode (BDT)
- Infra: Docker Compose (MongoDB, Redis, MinIO)
- Monorepo; security‑first; free‑for‑dev services
All tools and services must be free during development (local or free tier). Paid services will be considered at deployment time only.
- Learn professional full‑stack mobile development end‑to‑end
- Ship secure, scalable, observable software
- Practice CI/CD, testing, and production hygiene
- React Native (TypeScript, React Navigation, React Query, Zustand/RTK, RHF + Zod)
- Express API (Zod validation, Helmet, CORS, rate limiting, pino/winston logs)
- MongoDB Atlas (free M0) + Mongoose (indexes, transactions)
- Redis + BullMQ for background jobs
- S3‑compatible storage (MinIO dev; R2/S3 later)
- Stripe test mode (BDT) behind a payment adapter interface
/apps
/mobile # React Native app
/server # Express API
/packages # Shared configs/types (optional)
- Read BACKLOG.md for milestones and vertical slices
- See decisions in DECISIONS.md
- Follow progress in WORKLOG.md
- Node.js 20 LTS, npm 10+
- Git, Docker Desktop (or docker + docker-compose)
- macOS + Xcode for iOS, Android Studio for Android
- Java 17 (Android Gradle)
- gh (GitHub CLI) optional but recommended
We will proceed in small steps with instructor‑style explanations. First milestones:
- Bootstrap & quality gates (repo/tooling)
- Auth vertical (signup/login/logout with secure tokens)
- Listings + media uploads (pre‑signed URLs to MinIO)
See CONTRIBUTING.md. Conventional commits are used.
See SECURITY.md. Never commit secrets. Use .env files locally and environment secrets in CI/deploy.
MIT — see LICENSE.