How crkr-dev/mern-cicd-learning works
This is a task-manager application and a hands-on CI/CD learning project. Users add and list tasks in the React app; it calls the Express API, which validates requests and reads or writes task records in MongoDB. The README also documents a GitHub-to-Jenkins pipeline that builds and pushes images and deploys to Kubernetes. Source excerpts show the app, API, configuration, and database connections; deployment relationships below are based on README descriptions, not inspected pipeline or manifest contents.
Main entry points: server.js API server · Jenkinsfile Jenkins pipeline · App.js Task interface · app.js Express app
Components 17
Task interface
- React bootstrap
frontend/src/index.js - Task interface
frontend/src/App.js
Task API
- Express app
backend/src/app.js - Task routes
backend/src/routes/tasks.js - API server
backend/src/server.js - Runtime config
backend/src/config.js
Persistence
- DB connection
backend/src/db.js - Task model
backend/src/models/Task.js
Deployment
- Jenkins pipeline
Jenkinsfile - Kubernetes manifests
k8s/backend-deployment.yaml - Frontend deployment
k8s/frontend-deployment.yaml - Ingress routing
k8s/ingress.yaml
Other components
- User
- MongoDB Atlas
- GitHub
- Docker Hub
- Minikube
Connections 16
- User → Task interface: uses
README.md - React bootstrap → Task interface: renders
frontend/src/index.js - Task interface → Express app: requests tasks
frontend/src/App.js - API server → Runtime config: reads settings
backend/src/server.js - API server → DB connection: connects database
backend/src/server.js - API server → Express app: creates app
backend/src/server.js - Express app → Task routes: mounts routes
backend/src/app.js - Task routes → Task model: queries and creates
backend/src/routes/tasks.js - DB connection → MongoDB Atlas: connects
backend/src/db.js - Task model → MongoDB Atlas: persists records
- GitHub → Jenkins pipeline: triggers pipeline
README.md - Jenkins pipeline → Docker Hub: pushes images
README.md - Jenkins pipeline → Kubernetes manifests: deploys manifests
README.md - Kubernetes manifests → Minikube: deploys workloads
README.md - Minikube → Frontend deployment: runs frontend
- Ingress routing → Frontend deployment: routes requests