Dzhan85 / FullStack_Kubernetes_EKS_Todo

Full-Stack ToDo application hosted on AWS using Amazon EKS with React Frontend and Nginx reverse-proxy and Flask backend services

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Full-Stack TODO App in EKS

Full-Stack ToDo application hosted on AWS using Amazon EKS with React Frontend and Nginx reverse-proxy and Flask backend services

Functionality

  • This application allows performing CRUD operations on Todo items stored on AWS DynamoDB.
  • Each Todo item can optionally have an attachment image stored on Amazon S3.
  • Each user ONLY has access to Todo items that they created. Users authenticated and issued a RS256 signed JWT tokens by Auth0 verified using Auth0 JWKS endpoint.

Architecture

architecture

Running

Pre-requisite

  1. Database(DynamoDB): Create the Todos-{env} table on Amazon DynamoDB. The database is used to store the Todo items data.
  2. Filestore(S3): Create the AWS S3 attachments bucket. The S3 bucket is used to store Todo items attachment image

I. Run locally with docker-compose

Building Images

docker-compose build

Running Images

docker-compose up

II. Run in production with Kubernetes

Pre-requisite

  1. eksctl: Install eksctl for creating the cluster on EKS
  2. helm: Install helm to deploy assests on the EKS cluster

Create EKS Cluster with eksctl:

Create an EKS Cluster on AWS with worker-nodes to run the pods

eksctl create cluster -f cluster.yaml

Install the Helm Chart

Install the helm chart to deploy the application on the EKS cluster

helm install todo-app ./charts/todo-app

About

Full-Stack ToDo application hosted on AWS using Amazon EKS with React Frontend and Nginx reverse-proxy and Flask backend services


Languages

Language:TypeScript 52.1%Language:Python 31.8%Language:JavaScript 7.1%Language:HTML 4.1%Language:Dockerfile 2.7%Language:CSS 2.2%