https://github.com/aongcho880/swapshop
SwapShop — A production‑ready full‑stack mobile marketplace (React Native + Express + MongoDB) built as a capstone to master professional mobile app development. Monorepo, TypeScript, security-first, free-for-dev tools.
https://github.com/aongcho880/swapshop
architecture bullmq express-js fcm-notifications markeplace minio mobile-app mongodb-atlas mongoose-schema monorepo radis react-native-app security socket-io stripe-payments typescript
Last synced: about 2 months ago
JSON representation
SwapShop — A production‑ready full‑stack mobile marketplace (React Native + Express + MongoDB) built as a capstone to master professional mobile app development. Monorepo, TypeScript, security-first, free-for-dev tools.
- Host: GitHub
- URL: https://github.com/aongcho880/swapshop
- Owner: AongCho880
- License: mit
- Created: 2025-11-06T05:10:26.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-11-06T05:35:46.000Z (8 months ago)
- Last Synced: 2025-11-06T07:15:08.090Z (8 months ago)
- Topics: architecture, bullmq, express-js, fcm-notifications, markeplace, minio, mobile-app, mongodb-atlas, mongoose-schema, monorepo, radis, react-native-app, security, socket-io, stripe-payments, typescript
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# SwapShop — Full‑stack Mobile Marketplace
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
## Free‑for‑dev principle
All tools and services must be free during development (local or free tier). Paid services will be considered at deployment time only.
## Goals
- Learn professional full‑stack mobile development end‑to‑end
- Ship secure, scalable, observable software
- Practice CI/CD, testing, and production hygiene
## Architecture at a glance
- 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
## Monorepo layout (planned)
```
/apps
/mobile # React Native app
/server # Express API
/packages # Shared configs/types (optional)
```
## Start here
- Read BACKLOG.md for milestones and vertical slices
- See decisions in DECISIONS.md
- Follow progress in WORKLOG.md
## Local prerequisites
- 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
## Next steps
We will proceed in small steps with instructor‑style explanations. First milestones:
1) Bootstrap & quality gates (repo/tooling)
2) Auth vertical (signup/login/logout with secure tokens)
3) Listings + media uploads (pre‑signed URLs to MinIO)
## Contributing
See CONTRIBUTING.md. Conventional commits are used.
## Security
See SECURITY.md. Never commit secrets. Use `.env` files locally and environment secrets in CI/deploy.
## License
MIT — see LICENSE.