Zappify is a full-stack premium shoe e-commerce platform available on both Web and Mobile (Android). It offers a seamless shopping experience — from browsing curated shoe collections to placing orders and managing your account.
Built with a clean MERN stack on the backend and React + React Native on the frontend, Zappify is designed for performance, clean UI, and real-world usability.
- Website: zappify-sepia.vercel.app
- Download APK: Zappify Android App
- Preview App: Preview App
- React 19 - Modern UI library with functional components
- Vite - Fast build tool and dev server
- React Router - Client-side routing
- Framer Motion - Smooth animations
- Lucide React - Beautiful icons
- React Native - Cross-platform mobile development
- Expo - Development and build platform
- React Navigation - Mobile navigation
- Node.js & Express - RESTful API server
- MongoDB & Mongoose - Database and ODM
- JWT - Authentication
- Bcrypt - Password hashing
- Razorpay - Payment gateway integration
- GitHub Actions - CI/CD pipeline for automated linting
- Vercel - Frontend and backend deployment
- ESLint - Code quality and consistency
The application follows a three-tier architecture:
- Frontend Layer - React web app and React Native mobile app
- Backend Layer - Express.js REST API server
- Database Layer - MongoDB for data persistence
Data Flow:
User → Frontend (React/React Native) → API Calls → Backend (Express) → Database (MongoDB)
- Stores user credentials (email, hashed password)
- Supports both email/password and Google OAuth login
- Tracks user role (admin/customer)
- Contains shoe details (name, brand, price, image, stock)
- Categorized by type (Running, Casual, Sports, etc.)
- Linked to user who created it
- Stores order details and items
- Tracks shipping address and payment info
- Maintains order status (paid, delivered)
- Product Browsing: View 44+ premium shoe listings with images and details
- Search & Filter: Find shoes by brand, category, and price range
- Shopping Cart: Add/remove items, update quantities
- Wishlist: Save favorite products for later
- User Authentication:
- Email/Password registration and login
- Google OAuth 2.0 integration
- Checkout Process:
- Multi-step checkout (Cart → Address → Payment)
- Razorpay payment integration (Test mode)
- Order Management: View order history and status
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
- RESTful API: Clean API endpoints for all operations
- JWT Authentication: Secure token-based auth
- Password Security: Bcrypt hashing for user passwords
- Code Quality: ESLint for consistent code style
- CI/CD Pipeline: Automated linting on every push/PR via GitHub Actions
The project uses GitHub Actions for continuous integration:
Workflow Triggers:
- On push to
mainbranch - On pull requests to
mainbranch
Pipeline Steps:
- Install Dependencies - Installs npm packages for frontend and backend
- Run Linter - Checks code quality using ESLint
This ensures code quality is maintained before merging any changes.
- Node.js (v18 or higher)
- MongoDB (local or Atlas)
- npm or yarn
- Clone the repository
git clone https://github.com/Mishra-coder/Zappify.git
cd Zappify- Backend Setup
cd backend
npm installCreate a .env file in the backend directory:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
RAZORPAY_KEY_ID=your_razorpay_key
RAZORPAY_KEY_SECRET=your_razorpay_secretStart the backend server:
npm run dev- Frontend Setup
cd frontend
npm installCreate a .env file in the frontend directory:
VITE_API_URL=http://localhost:5000
VITE_GOOGLE_CLIENT_ID=your_google_client_idStart the frontend:
npm run dev- Mobile Setup
cd mobile
npm install
npx expo startScan the QR code with Expo Go app on your Android device.
Zappify/
├── .github/
│ └── workflows/
│ └── ci.yml # GitHub Actions CI pipeline
├── frontend/ # React Web Application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── data/ # Static product data
│ │ └── App.jsx # Main app component
│ ├── public/ # Static assets
│ └── package.json
├── backend/ # Node.js/Express API
│ ├── config/ # Database configuration
│ ├── controllers/ # Request handlers
│ ├── middlewares/ # Auth and validation middleware
│ ├── models/ # MongoDB schemas
│ ├── routes/ # API routes
│ ├── utils/ # Helper functions
│ └── server.js # Entry point
└── mobile/ # React Native Mobile App
├── src/
│ ├── components/ # Mobile UI components
│ ├── screens/ # App screens
│ ├── context/ # State management
│ └── data/ # Product data
└── App.js # Main app component
POST /api/users/register- Register new userPOST /api/users/login- Login userPOST /api/users/google- Google OAuth login
GET /api/products- Get all productsGET /api/products/:id- Get single product
POST /api/orders- Create new orderGET /api/orders/:id- Get order detailsGET /api/orders/user/:userId- Get user's orders
- MongoDB: Flexible schema for product variations
- Express: Lightweight and fast API development
- React: Component reusability across web and mobile
- Node.js: JavaScript everywhere, easy to maintain
- Code sharing between web and mobile
- Faster development with Expo
- Native performance with JavaScript
- Lightning-fast HMR (Hot Module Replacement)
- Optimized production builds
- Better developer experience than CRA
- JWT for stateless authentication
- Google OAuth for better user experience
- Bcrypt for secure password storage
-
State Management Across Platforms
- Solution: Used React Context API for simple, shared state management
-
Payment Integration
- Solution: Integrated Razorpay with proper error handling and test mode
-
Image Optimization
- Solution: Compressed images and used lazy loading for better performance
-
Mobile Responsiveness
- Solution: Used Flexbox and responsive units for consistent UI
-
API Security
- Solution: Implemented JWT middleware and input validation
- Add product reviews and ratings
- Implement real-time order tracking
- Add admin dashboard for inventory management
- Integrate more payment gateways
- Add push notifications for mobile app
- Implement advanced search with filters
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
Devendra Mishra
- GitHub: @Mishra-coder
- Project Link: https://github.com/Mishra-coder/Zappify
Built with ❤️ for Zappify Shoes
