Skip to content

SHUBHADEEPXT/Durga-Puja_Website_Project

πŸͺ” Durga Puja DevOps Platform

Typing SVG

πŸš€ Production-Grade Photo Sharing Platform with Complete DevOps Automation

GitHub Stars GitHub Forks GitHub Issues GitHub License

GitHub last commit GitHub repo size GitHub language count Visitors

🎯 Overview β€’ ✨ Features β€’ πŸ—οΈ Architecture β€’ πŸš€ Quick Start β€’ πŸ“š Documentation β€’ πŸ‘¨β€πŸ’» Author


🎯 Overview

Durga Puja DevOps Platform is a comprehensive, production-ready demonstration of modern DevOps practices, showcasing end-to-end automation from code to deployment. This project implements a full-stack photo-sharing application with complete CI/CD pipelines, infrastructure as code, container orchestration, and observability.

πŸŽͺ What Makes This Special?

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸ—οΈ  Infrastructure as Code     |  βš™οΈ  Complete Automation     β”‚
β”‚  🐳  Containerized Apps         β”‚  πŸ“Š  Real-time Monitoring    β”‚
β”‚  ☸️  Kubernetes Orchestration   β”‚  πŸ”„  GitOps Workflows        β”‚
β”‚  πŸ”  Security First Design      β”‚  πŸ“ˆ  Auto-scaling Ready      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ’Ό Built With Enterprise-Grade Technologies== Tech Stack & Tools

[AWS] [Kubernetes] Docker Terraform GitHub Actions ArgoCD Prometheus Grafana React Node.js PostgreSQL Redis


✨ Features

πŸ—οΈ Infrastructure & Cloud

☁️ AWS Cloud Infrastructure

βœ… Multi-AZ VPC Design (3 Availability Zones)
βœ… 9 Subnets (Public, Private, Database tiers)
βœ… NAT Gateways for Private Subnet Internet
βœ… Internet Gateway for Public Access
βœ… Security Groups & Network ACLs
βœ… Route Tables with Proper Routing

πŸŽ›οΈ Managed Services

βœ… Amazon EKS (Kubernetes 1.28)
βœ… Amazon RDS (PostgreSQL 15)
βœ… Amazon ElastiCache (Redis 7.0)
βœ… Amazon S3 (Encrypted Storage)
βœ… Application Load Balancer
βœ… Auto Scaling Groups

πŸ”„ DevOps & Automation

πŸš€ CI/CD Pipeline

βœ… Automated Testing (Frontend & Backend)
βœ… Security Scanning (npm audit)
βœ… Docker Image Building
βœ… Multi-stage Builds
βœ… Image Tagging with Git SHA
βœ… Push to Docker Hub
βœ… Infrastructure Validation

πŸ”„ GitOps Workflow

βœ… ArgoCD for Continuous Deployment
βœ… Declarative Configuration
βœ… Automated Sync from Git
βœ… Self-healing Applications
βœ… Rollback Capabilities
βœ… Multi-environment Support

☸️ Kubernetes & Orchestration

πŸ“¦ Container Orchestration

βœ… Deployments with 3 Replicas
βœ… Horizontal Pod Autoscaling (3-10 pods)
βœ… Services (ClusterIP & LoadBalancer)
βœ… Ingress with AWS ALB Controller
βœ… ConfigMaps for Configuration
βœ… Secrets Management

πŸ“Š Monitoring & Observability

βœ… Prometheus for Metrics Collection
βœ… Grafana Dashboards
βœ… Real-time Cluster Monitoring
βœ… Pod & Node Metrics
βœ… Resource Usage Tracking
βœ… Custom Alerts (Configurable)


🧱 Architecture

graph TB

  subgraph "Developer Workflow"
    A[πŸ‘©β€πŸ’» Developer] -->|Push Code| B[GitHub Repository]
  end

  subgraph "CI/CD Pipeline"
    B -->|Trigger| C[GitHub Actions]
    C -->|Test| D[Run Tests]
    C -->|Scan| E[Security Scan]
    C -->|Build| F[Docker Build]
    F -->|Push| G[Docker Hub]
    G -->|Validate| H[Terraform Check]
    H -->|Validate| I[Kubernetes Check]
  end

  subgraph "GitOps Deployment"
    G -->|Image Available| J[ArgoCD]
    J -->|Monitor| K[Kubernetes Cluster]
  end

  subgraph "AWS Infrastructure"
    K -->|Deploy to| L[EKS Cluster]
    L -->|Frontend Pods| M[React App]
    L -->|Backend Pods| N[Node.js API]
    N -->|Connect| O[RDS PostgreSQL]
    N -->|Cache| P[ElastiCache Redis]
    M -->|Store| Q[S3 Bucket]
  end

  subgraph "Monitoring"
    L -->|Metrics| R[Prometheus]
    R -->|Visualize| S[Grafana]
  end

  subgraph "Traffic Flow"
    T[🌐 Internet] -->|HTTPS| U[Application Load Balancer]
    U -->|Route| M
    U -->|API Calls| N
  end

  style A fill:#FF6B6B
  style B fill:#4ECDC4
  style C fill:#95E1D3
  style L fill:#F38181
  style R fill:#AA96DA
  style S fill:#FCBAD3
Loading

🎯 High-Level Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         Internet Users                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
		         β”‚
                         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   AWS Application Load Balancer                 β”‚
β”‚                    (Port 80/443 - SSL Termination)              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                               β”‚
         β–Ό                               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Frontend Pods   β”‚            β”‚  Backend Pods    β”‚
β”‚  (React + Vite)  │◄──────────►│  (Node.js)       β”‚
β”‚  Replicas: 3-10  β”‚            β”‚  Replicas: 3-10  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
					                               β”‚					  
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚                    β”‚                    β”‚
                    β–Ό                    β–Ό                    β–Ό
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚   RDS Postgres   β”‚  β”‚ ElastiCache Redisβ”‚  β”‚  S3 Bucket  β”‚
         β”‚   (Database)     β”‚  β”‚    (Cache)       β”‚  β”‚  (Storage)  β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Architecture Diagrams

AWS Infrastructure

AWS Infrastructure

CI/CD Pipeline

CI/CD Pipeline

Kubernetes Cluster

Kubernetes Cluster

Data Flow

Data Flow

Monitoring Stack

Monitoring


πŸ” Network Architecture

VPC: 10.0.0.0/16
β”‚
β”œβ”€ AZ 1 (us-east-1a)
β”‚  β”œβ”€ Public Subnet: 10.0.1.0/24    β†’ NAT Gateway, ALB
β”‚  β”œβ”€ Private Subnet: 10.0.11.0/24  β†’ EKS Worker Nodes
β”‚  └─ Database Subnet: 10.0.21.0/24 β†’ RDS, ElastiCache
β”‚
β”œβ”€ AZ 2 (us-east-1b)
β”‚  β”œβ”€ Public Subnet: 10.0.2.0/24
β”‚  β”œβ”€ Private Subnet: 10.0.12.0/24
β”‚  └─ Database Subnet: 10.0.22.0/24
β”‚
└─ AZ 3 (us-east-1c)
β”œβ”€ Public Subnet: 10.0.3.0/24
β”œβ”€ Private Subnet: 10.0.13.0/24
└─ Database Subnet: 10.0.23.0/24

πŸš€ Quick Start

πŸ“‹ Prerequisites

Required Tools

  • AWS CLI (v2+)
  • Terraform (v1.5+)
  • kubectl (v1.28+)
  • Docker (v20+)
  • Helm (v3+)

AWS Requirements

  • AWS Account with Admin Access
  • IAM User with Programmatic Access
  • AWS CLI Configured
  • ~$10-15/day Budget for Demo

πŸ”§ Installation

1️⃣ Clone the Repository

git clone https://github.com/SHUBHADEEPXT/Durga-Puja_Website_Project.git
cd Durga-Puja_Website_Project

2️⃣ Configure AWS Credentials

aws configure

  • AWS Access Key ID: YOUR_ACCESS_KEY
  • AWS Secret Access Key: YOUR_SECRET_KEY
  • Default region: us-east-1
  • Default output format: json

3️⃣ Set Up GitHub Secrets

Add these secrets to your GitHub repository:

  • DOCKER_USERNAME # Your Docker Hub username
  • DOCKER_PASSWORD # Your Docker Hub password
  • AWS_ACCESS_KEY_ID # AWS Access Key
  • AWS_SECRET_ACCESS_KEY # AWS Secret Key
  • MONGODB_PASSWORD # Database password
  • REDIS_PASSWORD # Redis password
  • VITE_API_URL # Frontend API URL

4️⃣ Deploy Infrastructure

cd infrastructure/terraform
  • Initialize Terraform
terraform init
  • Review the plan
terraform plan 
  • Deploy (takes ~25 minutes)
terraform apply -auto-approve

5️⃣ Configure kubectl

  • Update kubeconfig
aws eks update-kubeconfig --region us-east-1 --name durga-puja-eks
  • Verify connection
kubectl get nodes

6️⃣ Deploy Application

cd ../kubernetes
  • Deploy all resources
kubectl apply -f namespaces/
kubectl apply -f configmaps/
kubectl apply -f secrets/
kubectl apply -f deployments/
kubectl apply -f services/
kubectl apply -f ingress/
  • Wait for pods
kubectl get pods -n durga-puja -w

7️⃣ Install Monitoring

  • Add Helm repo
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
  • Install monitoring stack
helm install monitoring prometheus-community/kube-prometheus-stack \
  --namespace monitoring \
  --create-namespace \
  --set grafana.adminPassword=admin123

8️⃣ Install ArgoCD

  • Install ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
  • Get admin password
kubectl -n argocd get secret argocd-initial-admin-secret \
  -o jsonpath="{.data.password}" | base64 -d

9️⃣ Access Applications

  • Get Application URL
kubectl get ingress -n durga-puja
  • Port-forward Grafana
kubectl port-forward -n monitoring svc/monitoring-grafana 3000:80
  • Port-forward ArgoCD
kubectl port-forward -n argocd svc/argocd-server 8080:443

πŸ“š Documentation

πŸ“˜ Document 🧾 Description
Architecture Guide Detailed architecture and design decisions
Deployment Guide Step-by-step deployment instructions
Configuration Guide Configuration options and customization
Monitoring Guide Setting up and using monitoring tools
Security Guide Security best practices and hardening
Troubleshooting Common issues and their solutions
Cost Analysis AWS cost breakdown and optimization

##πŸŽ“ What I Learned

#### ☁️ Cloud & Infrastructure
  • AWS VPC design patterns
  • Multi-AZ high availability
  • Security group configuration
  • IAM roles and policies
  • Cost optimization strategies
#### πŸ”„ DevOps & Automation
  • CI/CD pipeline design
  • GitOps workflows
  • Container orchestration
  • Infrastructure as Code
  • Automated testing strategies
#### πŸ“Š Monitoring & Operations
  • Metrics collection
  • Dashboard creation
  • Alert configuration
  • Log aggregation
  • Performance tuning

##πŸ›£οΈ Roadmap

  • Complete AWS infrastructure with Terraform
  • Kubernetes cluster setup and configuration
  • CI/CD pipeline with GitHub Actions
  • Docker image registry integration
  • GitOps with ArgoCD
  • Monitoring with Prometheus/Grafana
  • Service Mesh (Istio) integration
  • Multi-region deployment
  • Advanced security scanning
  • Automated backup and DR
  • Canary deployments
  • Integration testing automation

🀝 Contributing

  • Contributions, issues, and feature requests are welcome but from Early December 2025!

  • Fork the Project

  • Create your Feature Branch (git checkout -b feature/AmazingFeature)

  • Commit your Changes (git commit -m 'Add some AmazingFeature')

  • Push to the Branch (git push origin feature/AmazingFeature)

  • Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.


πŸ“„ License

  • This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Shubhadeep
  • 🌐 Connect With Me

GitHub
LinkedIn
Email


πŸ™ Acknowledgments

  • Terraform AWS Modules
  • Kubernetes Documentation
  • ArgoCD Documentation
  • Prometheus Community
  • Grafana Labs

πŸ“ž Support

  • If you find this project helpful, please consider giving it a ⭐️!

  • For questions or support:

  • πŸ“§ Email: shubhadeep010@gmail.com

  • πŸ’¬ Open an Issue

  • πŸ“– Check the Documentation


  • πŸ’« Show Your Support
  • If this project helped you learn something new, please give it a ⭐️!
Made with ❀️❀️❀️ by Shubhadeep

⭐️ Star this repository if you found it helpful!
🍴 Fork it to create your own version!
πŸ“« Connect with me on LinkedIn!

πŸ“Š GithuB Statistics

GitHub Stats GitHub Streak Top Languages