Skip to content

sonuparit/Notes-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Notes-App (DevOps Practice Project)

📌 Project Overview

Notes-App is a lightweight, browser-based application developed from scratch using pure Vanilla JavaScript.
This project demonstrates:

  • Strong frontend fundamentals
  • Clean state management (normalized data structure)
  • Application architecture design thinking
  • DevOps-ready project structuring
  • Production deployment planning

The primary goal of this project is DevOps practice with a real application, not just infrastructure without context.


🚀 Features

  • Text Notes
  • Checklist Notes
  • Soft Delete (Recycle Bin)
  • Dynamic UI Rendering
  • State-based architecture
  • Modular logic separation
  • Future-ready backend integration support

🧠 Architecture Philosophy

This app follows:

  • Normalized State Structure
  • Pure Function-Based State Mutations
  • Separation of Concerns (UI vs Logic)
  • Id-based entity management
  • Scalable design for API integration

Example State Structure:

state = {
  META: { version, lastUpdated },
  notesById: {},
  itemsById: {},
  noteOrder: [],
  itemOrderByNoteId: {}
}

This structure makes it easy to:

  • Integrate REST APIs
  • Add persistent storage
  • Containerize application
  • Scale horizontally

🐳 Containerization (Docker)

Dockerfile Example

FROM nginx:alpine
COPY . /usr/share/nginx/html
EXPOSE 80

Build Image:

docker build -t notes-app:latest .

Run Container:

docker run -p 8080:80 notes-app

☸️ Kubernetes Deployment (Future Implementation)

Planned Kubernetes Objects

  • Deployment
  • Service (ClusterIP / LoadBalancer)
  • Ingress Controller (NGINX)
  • ConfigMaps
  • Secrets (future backend integration)

Example Architecture:

User → Ingress → Service → Pod → Nginx → Static App


🏗️ CI/CD Pipeline (Planned Production Workflow)

Tools Stack

  • GitHub (Source Control)
  • Jira (Issue Tracking & Sprint Management)
  • Jenkins (CI/CD Pipeline)
  • Docker (Containerization)
  • Kubernetes (Orchestration)
  • Terraform (Infrastructure as Code)
  • Ansible (Configuration Management)
  • Prometheus (Monitoring)
  • Grafana (Visualization)

🔁 CI/CD Flow (Future AWS Implementation)

  1. Developer pushes code to GitHub
  2. Jira ticket linked to commit
  3. Jenkins pipeline triggers automatically
  4. Build Docker image
  5. Run unit/lint checks
  6. Push image to AWS ECR
  7. Terraform provisions infrastructure (EKS, VPC, IAM)
  8. Ansible configures cluster if required
  9. Deploy to EKS
  10. Prometheus monitors cluster metrics
  11. Grafana dashboards visualize app health

☁️ Planned AWS Cloud Architecture

  • AWS VPC
  • EKS (Managed Kubernetes)
  • EC2 Worker Nodes
  • AWS ECR
  • Application Load Balancer
  • Route53
  • CloudWatch (log aggregation)
  • IAM Roles for Service Accounts

Infrastructure Provisioned via:

terraform init
terraform plan
terraform apply

📊 Observability Strategy

Monitoring Stack:

  • Prometheus scraping K8s metrics
  • Grafana dashboards
  • AlertManager for notifications
  • Node Exporter
  • Kube-State-Metrics

Future Enhancements:

  • Distributed tracing (Jaeger)
  • Centralized logging (ELK stack)

🔐 DevOps Best Practices Applied

  • Immutable Infrastructure
  • Infrastructure as Code (Terraform)
  • Git-based workflow
  • Container-first development
  • Environment parity
  • Horizontal scalability
  • Monitoring-first mindset
  • Clean commit history

🧪 Local Development

Clone Repository:

git clone <your-repo-url>
cd Notes-App

Run with Nginx locally or using Docker.


📈 Future Roadmap

  • Backend API (Node.js / Python FastAPI)
  • Database Integration (PostgreSQL)
  • Authentication & Authorization
  • Role-based access control
  • Helm charts for K8s packaging
  • Blue-Green Deployment Strategy
  • Canary Releases
  • GitOps (ArgoCD)

🎯 Purpose of This Project

This project demonstrates:

  • Ability to build applications from scratch
  • Strong frontend engineering fundamentals
  • Production-grade DevOps planning
  • Cloud-native architecture thinking
  • Scalability mindset

👨‍💻 Author

Developed as part of a DevOps learning journey to combine:

Application Development + Infrastructure Engineering + Cloud Architecture


📄 License

This project is open-source and available for learning purposes.

About

Notes App for all round practicing of DevOps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors