A full-stack cloud-native Task Management application built with React, Node.js, MongoDB, Docker, Kubernetes, Amazon EKS, Amazon ECR, and GitHub Actions CI/CD.
The application allows users to create, view, update, and delete tasks while demonstrating a complete production-style deployment on AWS.
- Create new tasks
- View all tasks
- Update task status
- Delete tasks
- RESTful API
- Responsive React frontend
- MongoDB Atlas database
- Containerized using Docker
- Kubernetes deployment with EKS
- Automatic deployment using GitHub Actions
Git Push
│
▼
GitHub Actions CI/CD
│
┌───────────┴───────────┐
▼ ▼
Build Backend Image Build Frontend Image
│ │
└───────────┬───────────┘
▼
Amazon ECR
│
▼
Amazon EKS
│
AWS Load Balancer
│
Kubernetes Ingress
┌─────────┴─────────┐
▼ ▼
React Frontend Node.js Backend
│
▼
MongoDB Atlas
- React.js
- Axios
- CSS
- Node.js
- Express.js
- Mongoose
- REST API
- MongoDB Atlas
- Docker
- Docker Compose
- Kubernetes
- Amazon EKS
- Amazon ECR
- AWS Application Load Balancer
- AWS Load Balancer Controller
- GitHub Actions
Taskflow-k8s
│
├── backend/
│ ├── src/
│ ├── Dockerfile
│ └── package.json
│
├── frontend/
│ ├── src/
│ ├── Dockerfile
│ └── package.json
│
├── kubernetes/
│ ├── backend/
│ ├── frontend/
│ ├── ingress/
│ └── hpa/
│
├── .github/
│ └── workflows/
│ └── deploy.yml
│
└── docker-compose.yml
Every push to the main branch automatically:
- Checks out the repository
- Authenticates with AWS
- Builds Docker images
- Pushes images to Amazon ECR
- Connects to Amazon EKS
- Updates Kubernetes Deployments
- Waits for rollout completion
- Amazon EC2
- Amazon EKS
- Amazon ECR
- IAM
- VPC
- Application Load Balancer (ALB)
git clone https://github.com/koustub1412/Taskflow-k8s.git
cd Taskflow-k8scd backend
npm install
npm startcd frontend
npm install
npm startBuild backend
docker build -t taskflow-backend ./backendBuild frontend
docker build -t taskflow-frontend ./frontendDeploy resources
kubectl apply -f kubernetes/Check pods
kubectl get podsCheck services
kubectl get svcCheck ingress
kubectl get ingressGitHub Actions automatically deploys the application after every push to the main branch.
The workflow:
Git Push
↓
GitHub Actions
↓
Docker Build
↓
Amazon ECR
↓
Amazon EKS
↓
AWS ALB
↓
Application Live
This project demonstrates practical experience with:
- Docker containerization
- Kubernetes Deployments and Services
- ConfigMaps and Secrets
- Health Checks
- Horizontal Pod Autoscaler (HPA)
- Amazon Elastic Kubernetes Service (EKS)
- Amazon Elastic Container Registry (ECR)
- AWS Load Balancer Controller
- GitHub Actions CI/CD
- Infrastructure deployment on AWS