A full-featured eCommerce platform built with the MERN stack (MongoDB, Express.js, React, Node.js) and deployed using Docker, Kubernetes, and Jenkins CI/CD pipeline.
| Layer | Technology |
|---|---|
| Frontend | React.js |
| Backend | Node.js + Express.js |
| Database | MongoDB |
| CI/CD | Jenkins |
| Containerization | Docker |
| Orchestration | Kubernetes (K8s) |
| Cloud-ready | Supports Minikube / any K8s cluster |
- 🛒 Add to cart, checkout, and order summary
- 🔐 User authentication
- 💳 Simulated payment gateway
- 📦 Admin product management
- 📊 Order & transaction tracking
- ☁️ CI/CD via Jenkins pipelines
- 🐳 Dockerized microservices
- ☸️ Kubernetes deployment (client + server)
hayroo/
├── client/ # React frontend
├── server/ # Node.js backend
├── k8s/ # Kubernetes manifests
│ ├── client-deployment.yaml
│ ├── client-service.yaml
│ ├── server-deployment.yaml
│ └── server-service.yaml
├── Jenkinsfile # CI/CD pipeline
└── README.md
- Docker & Docker Compose
- Minikube or Kubernetes Cluster
- Jenkins (configured with Docker access)
- MongoDB instance (can be deployed via K8s or Atlas)
git clone https://github.com/tharikashree/hayroo.git
cd client
npm start
cd server
npm start# Build images
docker build -t tharikashree/client ./client
docker build -t tharikashree/server ./server
# Run containers
docker run -p 3000:3000 tharikashree/client
docker run -p 5000:5000 tharikashree/server
The project includes a declarative Jenkinsfile for automated build, push, and deploy.
Pipeline Stages: 1.Clone GitHub repo
2.Login to Docker Hub
3.Build Docker images
4.Push images to Docker Hub
5.Apply Kubernetes manifests
Ensure Jenkins is configured with:
dockerhub-creds-id → Docker Hub username + access token
kubeconfig-secret → Kube config file (for cluster access)
Kubernetes Deployment
-
Start Minikube (optional)
minikube start -
Apply K8s Manifests
kubectl apply -f k8s/ -
Access Services
# Check service URLs kubectl get svc
minikube service client-service
minikube service server-service
Environment Variables (example) Set up .env files for both client and server:
server/.env
MONGO_URI=mongodb://localhost:27017/hayroo
PORT=5000
JWT_SECRET=your_jwt_secret
client/.env
REACT_APP_API_BASE_URL=http://localhost:5000/api
📄 License This project is licensed under the MIT License.