A full-stack e-commerce platform with augmented reality features, supporting customers, sellers, and administrators.
├── backend/ # Node.js + Express + MongoDB backend API
└── mobile/ # React Native + Expo mobile app
-
Customer Features
- Browse products with beautiful grid layout
- View detailed product information with image galleries
- Shopping cart management
- Place and track orders
- Profile management
- Apply to become a seller
-
Seller Features
- Product management (add, edit, delete)
- Upload product images and videos
- Upload AR models for products
- Track product approval status
- Inventory management
-
Authentication
- OTP-based registration
- Phone + password login
- Secure token-based authentication
- User authentication with OTP verification
- Role-based access control (Customer, Seller, Admin)
- Product management with approval workflow
- Shopping cart and order management
- Image and video upload with Cloudinary
- Seller application and approval system
- React Native
- TypeScript
- Expo & Expo Router
- React Native Reanimated (Animations)
- React Native Paper (UI Components)
- Axios
- AsyncStorage
- Node.js
- Express
- MongoDB + Mongoose
- TypeScript
- Twilio (OTP)
- Cloudinary (File uploads)
- JWT Authentication
- Navigate to backend directory:
cd backend
npm install-
Create
.envfile with required variables (seebackend/.env.example) -
Start the server:
npm run dev- Navigate to mobile directory:
cd mobile
npm install-
Update
.envwith your backend API URL -
Start Expo:
npm start- Run on device:
- Press
ifor iOS simulator - Press
afor Android emulator - Scan QR code with Expo Go app on physical device
- Theme: Orange-yellow gradient on dark background
- Primary Color: #FF8C00
- Secondary Color: #FFB347
- Background: #121212 (Dark)
- Animations: Smooth transitions with React Native Reanimated
The app automatically adapts based on user role:
- Customer: Can browse products, add to cart, place orders
- Seller: Can manage their products, view seller-specific features
- Admin: Web admin panel (to be implemented)
Users start as customers and can apply to become sellers through the app.
POST /api/auth/request-otp- Request OTPPOST /api/auth/verify-otp- Verify OTPPOST /api/auth/login- Login with passwordGET /api/auth/me- Get current user
GET /api/products- Get all productsGET /api/products/:id- Get product by IDPOST /api/products- Create product (Seller)PUT /api/products/:id- Update product (Seller)DELETE /api/products/:id- Delete product (Seller)
GET /api/cart- Get user cartPOST /api/cart- Add to cartDELETE /api/cart/:productId- Remove from cart
POST /api/orders/checkout- Place orderPOST /api/orders/:id/slip- Upload bank slip
POST /api/seller/apply- Apply for seller account
MIT