A full-stack e-commerce platform built with React Native (frontend) and Node.js/Express (backend), featuring modern UI/UX, secure authentication, payment processing, and comprehensive admin functionality.
- Modern UI/UX: Beautiful, responsive design with dark/light theme support
- Authentication: Complete user registration, login, and profile management
- Product Browsing: Advanced product search, filtering, and categorization
- Shopping Cart: Full cart functionality with quantity management
- Product Details: Rich product pages with image galleries, reviews, and variants
- Checkout Process: Streamlined checkout with address and payment management
- Order Management: Order tracking and history
- User Profile: Comprehensive profile management with settings
- Wishlist: Save and manage favorite products
- Reviews & Ratings: Product reviews and rating system
- Skeleton Loading: Smooth loading states for better UX
- Responsive Design: Mobile-first approach with TailwindCSS
- Modern UI: Clean, accessible design with dark mode support
- Performance Optimized: Lazy loading, code splitting, and image optimization
- Accessibility: WCAG 2.1 AA compliant with screen reader support
- PWA Ready: Progressive Web App with offline support
- SEO Optimized: Meta tags, structured data, and sitemap
- Reusable Components: Modular component architecture
- Fast Load Times: Optimized bundle size and caching strategies
- RESTful API: Complete REST API with proper error handling
- Authentication: JWT-based authentication with refresh tokens
- Cart Management: Full shopping cart functionality with item management
- Wishlist Management: User wishlist with notes and priority levels
- Database: MongoDB with Mongoose ODM
- Payment Processing: Stripe integration for secure payments
- Email System: Transactional emails for orders and notifications
- File Upload: Cloudinary integration for image management
- Admin Panel: Comprehensive admin dashboard and management tools
- Analytics: Detailed sales, inventory, user, and product analytics
- Security: Rate limiting, input validation, and security middleware
- Caching: Redis integration for performance optimization
Screenshots will be added here
- React Native - Cross-platform mobile development
- Expo - Development platform and tools
- React Navigation - Navigation and routing
- Context API - State management
- AsyncStorage - Local data persistence
- Vector Icons - Icon library
- React.js - Modern web development
- Vite - Fast build tool and dev server
- TailwindCSS - Utility-first CSS framework
- React Router - Client-side routing
- React Query - Server state management
- Framer Motion - Animation library
- Lucide React - Icon library
- Node.js - JavaScript runtime
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - Object Data Modeling
- JWT - Authentication tokens
- Stripe - Payment processing
- Nodemailer - Email sending
- Cloudinary - Image upload and management
- Redis - Caching and sessions
- Multer - File upload handling
Before running this project, make sure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn
- MongoDB (local or cloud)
- Expo CLI (
npm install -g expo-cli) - React Native development environment
git clone https://github.com/yourusername/kex-ecommerce.git
cd kex-ecommercecd server
npm installcd client
npm installcd web
npm installcd server
cp env.example .envEdit the .env file with your configuration:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/kex-ecommerce
JWT_SECRET=your-super-secret-jwt-key
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secretThe frontend uses the API configuration in client/src/config/api.js. Update the API_BASE_URL for your environment.
# Start MongoDB (if running locally)
mongod
# Or use MongoDB Atlas (cloud)
# Update MONGODB_URI in .env filecd server
npm run devcd client
expo start- Install Expo Go on your mobile device
- Scan the QR code from the terminal
- The app will load on your device
# iOS Simulator
expo start --ios
# Android Emulator
expo start --androidkex-ecommerce/
βββ client/ # React Native frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ screens/ # Screen components
β β βββ context/ # React Context providers
β β βββ config/ # Configuration files
β β βββ utils/ # Utility functions
β β βββ assets/ # Images, fonts, etc.
β βββ App.js # Main app component
β βββ package.json # Frontend dependencies
βββ server/ # Node.js backend
β βββ models/ # Database models
β βββ routes/ # API routes
β βββ middleware/ # Custom middleware
β βββ utils/ # Utility functions
β βββ index.js # Server entry point
β βββ package.json # Backend dependencies
βββ admin/ # Admin dashboard (future)
βββ README.md # Project documentation
Update client/src/config/api.js:
export const API_BASE_URL = __DEV__
? 'http://localhost:5000'
: 'https://your-production-api.com';The app uses MongoDB. Configure your connection in server/.env:
MONGODB_URI=mongodb://localhost:27017/kex-ecommerceSet up Stripe in server/.env:
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
STRIPE_PUBLISHABLE_KEY=pk_test_your_stripe_publishable_keyPOST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutPOST /api/auth/forgot-password- Password reset requestPOST /api/auth/reset-password- Password reset
GET /api/products- Get all products with filteringGET /api/products/:id- Get product detailsPOST /api/products/:id/reviews- Add product reviewGET /api/categories- Get product categories
GET /api/orders- Get user ordersPOST /api/orders- Create new orderGET /api/orders/:id- Get order detailsPUT /api/orders/:id/status- Update order status
GET /api/users/profile- Get user profilePUT /api/users/profile- Update user profilePOST /api/users/change-password- Change passwordGET /api/users/addresses- Get user addressesPOST /api/users/addresses- Add new address
- JWT Authentication with refresh tokens
- Password Hashing using bcrypt
- Input Validation with express-validator
- Rate Limiting to prevent abuse
- CORS Configuration for cross-origin requests
- Helmet.js for security headers
- SQL Injection Protection (MongoDB)
- XSS Protection with input sanitization
cd server
npm testcd client
npm testcd server
heroku create your-app-name
heroku config:set NODE_ENV=production
heroku config:set MONGODB_URI=your-production-mongodb-uri
git push heroku maincd client
expo build:android # For Android
expo build:ios # For iOS- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Contact the development team
- Expo for the amazing development platform
- React Navigation for navigation solutions
- Stripe for payment processing
- MongoDB for the database
- Cloudinary for image management
- Admin dashboard with analytics
- Push notifications
- Social media login
- Multi-language support
- Advanced search with Elasticsearch
- Real-time chat support
- Advanced inventory management
- Subscription/membership features
- Mobile app store deployment
- Performance optimization
- Unit and integration tests
- CI/CD pipeline setup
Made with β€οΈ by the KEX Development Team