Shopolio is a scalable and production-ready E-commerce Backend API built using Node.js, Express, and MongoDB. It provides core functionalities required for an online shopping platform including authentication, product management, and order processing.
-
🔐 Authentication & Authorization
- JWT-based login & signup
- Role-based access control (User/Admin)
-
📦 Product Management
- Create, Read, Update, Delete products
- Pagination, filtering & sorting
-
🛒 Order Management
- Create orders
- View order history
- Update order status (Admin)
-
📄 API Documentation
- Integrated Swagger UI
- Test APIs directly from browser
-
⚙️ Production-Ready Setup
- Environment-based configuration
- Clean architecture (MVC)
- Centralized error handling
- Backend: Node.js, Express.js
- Database: MongoDB (MongoDB Atlas)
- Authentication: JWT + Bcrypt
- API Docs: Swagger (OpenAPI 3.0)
Shopolio
├── configs/ # Config files (Swagger, DB, etc.)
├── controllers/ # Business logic
├── middlewares/ # Auth & error handling
├── models/ # Mongoose schemas
├── routes/ # API routes
├── docs/ # Swagger schemas
└── server.js # Entry point
git clone https://github.com/GeekyHim/Shopolio.git cd Shopolio
npm install
PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_secret_key NODE_ENV=development SWAGGER_ENABLED=true
npm start
Once the server is running:
http://localhost:5000/api-docs
Test all APIs directly using Swagger UI.
POST /api/v1/auth/signup
POST /api/v1/auth/login
GET /api/v1/products
POST /api/v1/products (Admin)
PATCH /api/v1/products/:id
DELETE /api/v1/products/:id
POST /api/v1/orders
GET /api/v1/orders
GET /api/v1/orders/:orderId
PATCH /api/v1/orders/:orderId/status (Admin)
Protected routes require:
Authorization: Bearer <JWT_TOKEN>
https://shopolio.onrender.com/
- Clean and scalable architecture (MVC)
- Production-ready backend design
- Real-world API structure
- Fully documented APIs (Swagger)
- Payment gateway integration
- Redis caching
- Rate limiting & security enhancements
- Unit & integration testing
Himanshu Gupta
GitHub: https://github.com/GeekyHim
LinkedIn: https://www.linkedin.com/in/geekyhim/
If you like this project, consider giving it a ⭐ on GitHub!