Skip to content

About

Full-stack Task Management application deployed on Amazon EKS using Kubernetes, Docker, ECR, ALB Ingress, HPA, ConfigMaps, Secrets, and GitHub Actions CI/CD

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

TaskFlow - Cloud Native Task Management Application

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.


Features

  • 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

Architecture

                 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

Tech Stack

Frontend

  • React.js
  • Axios
  • CSS

Backend

  • Node.js
  • Express.js
  • Mongoose
  • REST API

Database

  • MongoDB Atlas

DevOps & Cloud

  • Docker
  • Docker Compose
  • Kubernetes
  • Amazon EKS
  • Amazon ECR
  • AWS Application Load Balancer
  • AWS Load Balancer Controller
  • GitHub Actions

Project Structure

Taskflow-k8s
│
├── backend/
│   ├── src/
│   ├── Dockerfile
│   └── package.json
│
├── frontend/
│   ├── src/
│   ├── Dockerfile
│   └── package.json
│
├── kubernetes/
│   ├── backend/
│   ├── frontend/
│   ├── ingress/
│   └── hpa/
│
├── .github/
│   └── workflows/
│       └── deploy.yml
│
└── docker-compose.yml

CI/CD Pipeline

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

AWS Services Used

  • Amazon EC2
  • Amazon EKS
  • Amazon ECR
  • IAM
  • VPC
  • Application Load Balancer (ALB)

Running Locally

Clone Repository

git clone https://github.com/koustub1412/Taskflow-k8s.git
cd Taskflow-k8s

Backend

cd backend
npm install
npm start

Frontend

cd frontend
npm install
npm start

Docker

Build backend

docker build -t taskflow-backend ./backend

Build frontend

docker build -t taskflow-frontend ./frontend

Kubernetes Deployment

Deploy resources

kubectl apply -f kubernetes/

Check pods

kubectl get pods

Check services

kubectl get svc

Check ingress

kubectl get ingress

CI/CD

GitHub 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

Key Learnings

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

About

Full-stack Task Management application deployed on Amazon EKS using Kubernetes, Docker, ECR, ALB Ingress, HPA, ConfigMaps, Secrets, and GitHub Actions CI/CD

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages