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.
- Text Notes
- Checklist Notes
- Soft Delete (Recycle Bin)
- Dynamic UI Rendering
- State-based architecture
- Modular logic separation
- Future-ready backend integration support
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
FROM nginx:alpine
COPY . /usr/share/nginx/html
EXPOSE 80Build Image:
docker build -t notes-app:latest .Run Container:
docker run -p 8080:80 notes-app- Deployment
- Service (ClusterIP / LoadBalancer)
- Ingress Controller (NGINX)
- ConfigMaps
- Secrets (future backend integration)
Example Architecture:
User → Ingress → Service → Pod → Nginx → Static App
- 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)
- Developer pushes code to GitHub
- Jira ticket linked to commit
- Jenkins pipeline triggers automatically
- Build Docker image
- Run unit/lint checks
- Push image to AWS ECR
- Terraform provisions infrastructure (EKS, VPC, IAM)
- Ansible configures cluster if required
- Deploy to EKS
- Prometheus monitors cluster metrics
- Grafana dashboards visualize app health
- 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 applyMonitoring Stack:
- Prometheus scraping K8s metrics
- Grafana dashboards
- AlertManager for notifications
- Node Exporter
- Kube-State-Metrics
Future Enhancements:
- Distributed tracing (Jaeger)
- Centralized logging (ELK stack)
- Immutable Infrastructure
- Infrastructure as Code (Terraform)
- Git-based workflow
- Container-first development
- Environment parity
- Horizontal scalability
- Monitoring-first mindset
- Clean commit history
Clone Repository:
git clone <your-repo-url>
cd Notes-AppRun with Nginx locally or using Docker.
- 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)
This project demonstrates:
- Ability to build applications from scratch
- Strong frontend engineering fundamentals
- Production-grade DevOps planning
- Cloud-native architecture thinking
- Scalability mindset
Developed as part of a DevOps learning journey to combine:
Application Development + Infrastructure Engineering + Cloud Architecture
This project is open-source and available for learning purposes.