A full-stack quick-commerce web application built with Next.js, Node.js, Express, and MongoDB.
Live: https://frontend-omega-six-31.vercel.app
GitHub: https://github.com/aakashpate/kitblin
- Product browsing with categories, search, and filters
- Shopping cart with quantity controls
- Wishlist management
- Checkout with Razorpay payment or Cash on Delivery
- Order tracking with real-time status updates
- Coupon and discount system
- Product reviews and ratings
- Multiple delivery addresses
- Support ticket system
- Notifications
- Fully responsive mobile-first UI
- Revenue and order analytics with charts
- Product management (CRUD with image upload)
- Order management with status updates
- Customer management
- Coupon management
- Review moderation
- Support ticket management
- Banner management
- Delivery fee configuration
- Available orders for pickup
- Order status updates (Pick Up → Out for Delivery → Delivered)
- Delivery history
- Earnings dashboard with charts
- Availability toggle
- Customer contact info
- Frontend: Next.js 14, React 18, TypeScript, Tailwind CSS
- Backend: Node.js, Express.js, MongoDB, Mongoose
- Authentication: JWT, bcrypt
- Payments: Razorpay
- Images: Cloudinary
- State Management: Zustand
- Charts: Chart.js
kitblin/
├── frontend/ # Next.js frontend
│ ├── app/ # Pages and routes
│ ├── components/ # Reusable components
│ ├── lib/ # Utilities and API
│ ├── store/ # Zustand stores
│ └── types/ # TypeScript types
├── backend/ # Express.js backend
│ └── src/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── utils/
│ ├── config/
│ └── seed.js
└── README.md
- Node.js 18+
- MongoDB (local or Atlas)
- npm or yarn
git clone https://github.com/aakashpate/kitblin.git
cd kitblincd backend
npm install
cp .env.example .env
# Edit .env with your MongoDB URI, JWT secret, Razorpay keys, Cloudinary keys
npm run seed # Seed database with sample data
npm run dev # Start backend on port 5000cd frontend
npm install
cp .env.local.example .env.local
# Edit .env.local with your API URL and keys
npm run dev # Start frontend on port 3000| Variable | Description |
|---|---|
| PORT | Server port (default: 5000) |
| MONGODB_URI | MongoDB connection string |
| JWT_SECRET | JWT signing secret |
| CLIENT_URL | Frontend URL (http://localhost:3000) |
| RAZORPAY_KEY_ID | Razorpay key |
| RAZORPAY_KEY_SECRET | Razorpay secret |
| CLOUDINARY_CLOUD_NAME | Cloudinary cloud name |
| CLOUDINARY_API_KEY | Cloudinary API key |
| CLOUDINARY_API_SECRET | Cloudinary API secret |
| Variable | Description |
|---|---|
| NEXT_PUBLIC_API_URL | Backend API URL (http://localhost:5000/api) |
| NEXT_PUBLIC_RAZORPAY_KEY_ID | Razorpay key |
| NEXT_PUBLIC_GOOGLE_MAPS_API_KEY | Google Maps API key |
| Role | Password | |
|---|---|---|
| Admin | admin@kitblin.local | ChangeMe123! |
| Delivery Partner | rahul@kitblin.local | Delivery123! |
| Customer | customer@kitblin.local | Customer123! |
- POST /api/auth/register
- POST /api/auth/login
- GET /api/auth/me
- PUT /api/auth/change-password
- GET /api/products
- GET /api/products/search
- GET /api/products/featured
- GET /api/products/:slug
- POST /api/products (Admin)
- PUT /api/products/:id (Admin)
- DELETE /api/products/:id (Admin)
- GET /api/categories
- GET /api/categories/:slug
- POST /api/categories (Admin)
- GET /api/cart
- POST /api/cart
- PUT /api/cart/:itemId
- DELETE /api/cart/:itemId
- POST /api/orders
- GET /api/orders/my-orders
- GET /api/orders/:id
- PUT /api/orders/:id/cancel
cd frontend
npm run build
# Deploy to Vercelcd backend
npm run build
# Deploy to Render or Railway- Create a free cluster at mongodb.com
- Get connection string
- Add to MONGODB_URI
MIT License