Navigation: Main README • Mobile App • Admin Dashboard • Backend API
A full-stack e-commerce solution built with Expo (React Native), Next.js, and Express.js. This repository is structured as a monorepo containing three main applications: a mobile client, an admin dashboard, and a backend API.
- Mobile Application (
/mobile) - The consumer-facing mobile application built with Expo and React Native. - Admin Dashboard (
/admin) - The web-based admin dashboard to manage the platform built with Next.js. - Backend API (
/backend) - The RESTful backend API built with Express.js and MongoDB.
- Framework:
Expo (~54.0.33) /
React Native
- Navigation: Expo Router & React Navigation
- Styling:
NativeWind & Tailwind CSS
- Authentication:
Clerk Expo
- Data Fetching: React Query & Axios
- Payments: Stripe React Native
- Monitoring: Sentry React Native
- Language:
TypeScript
- Framework:
Next.js (v16.1.6)
- Styling:
Tailwind CSS (v4) & DaisyUI
- Authentication:
Clerk Next.js
- Icons: Lucide React
- Data Fetching: Axios
- Language:
TypeScript
- Runtime:
Node.js
- Framework:
Express.js (v5.2.1)
- Database:
MongoDB via Mongoose
- Authentication:
Clerk Express
- Background Jobs:
Inngest
- Media Storage:
Cloudinary & Multer
- Security & Logging: Helmet, CORS, Morgan, Winston
- Language:
TypeScript
- Linting & Formatting: ESLint, Prettier
- Git Hooks: Husky, Lint-staged
You need to set up .env files for each workspace. Refer to the respective documentation in Mobile.md, Admin.md, and Backend.md for specific variable details.
Make sure you have the following installed on your machine:
- Node.js (v18 or higher recommended)
- pnpm (Package manager)
- MongoDB instance (local or MongoDB Atlas)
- Expo Go app on your mobile device (if testing physically)
git clone <repository-url>
cd Expo-ecommerceWe use pnpm exclusively in this project. Run the installation in the root and each respective folder:
pnpm install
cd backend && pnpm install
cd ../admin && pnpm install
cd ../mobile && pnpm installBackend API:
cd backend
pnpm devAdmin Web Dashboard:
cd admin
pnpm devMobile App:
cd mobile
pnpm startpnpm run lint: Lints the entire project.pnpm run lint:{mobile|web|server}: Lints a specific application.pnpm run format: Automatically formats code in the project using Prettier.
Contributions, issues, and feature requests are welcome!
This project is licensed under the MIT License.
