Expense Tracker Three Tier

A full-stack expense tracking web application built with React, Node.js, and PostgreSQL. Features JWT authentication, expense CRUD operations, dashboard analytics with charts, and CSV export functionality.

reactjsnodejskuberneteseksingress

Architecture

This application follows a three-tier architecture:

Tier 1 - Frontend: React.js application with Tailwind CSS Tier 2 - Backend: Node.js REST API with Express and JWT authentication Tier 3 - Database: PostgreSQL with Sequelize ORM

πŸ“ Directory Structure

app/
β”œβ”€β”€ frontend/          # React frontend application
β”œβ”€β”€ backend/           # Node.js API server
β”œβ”€β”€ database/          # Database migrations and seeders
└── README.md          # This file

Note:

This repository contains a three-tier application built with the help of AI agents, designed to practice real-world deployment workflows. The project focuses on:

  • Containerizing applications using Docker
  • Deploying workloads on Kubernetes (EKS)
  • Managing frontend, backend, and database layers
  • Configuring Ingress with a custom domain
  • Securing traffic using TLS certificates (Let’s Encrypt)
  • Applying Kubernetes best practices such as namespaces, config maps, secrets, jobs, and services
  • The primary goal of this project is to gain hands-on experience with production-like Kubernetes deployments, cloud-native architecture, and infrastructure automation.

K8s infra Directory Structure

.
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
β”‚
β”œβ”€β”€ namespace.yaml
β”‚   # Kubernetes namespace for isolating application resources
β”‚
β”œβ”€β”€ configmap-backend.yaml
β”œβ”€β”€ configmap-frontend.yaml
β”‚   # Application configuration for backend and frontend
β”‚
β”œβ”€β”€ secret-backend.yaml
β”‚   # Sensitive backend credentials (DB, secrets, etc.)
β”‚
β”œβ”€β”€ deployment-backend.yaml
β”œβ”€β”€ deployment-frontend.yaml
β”‚   # Kubernetes Deployments for backend and frontend services
β”‚
β”œβ”€β”€ service-backend.yaml
β”œβ”€β”€ service-frontend.yaml
β”‚   # ClusterIP services exposing backend and frontend internally
β”‚
β”œβ”€β”€ ingress.yaml
β”‚   # Ingress resource for routing traffic via custom domain
β”‚
β”œβ”€β”€ lets-encrypt-cert.yaml
β”‚   # TLS certificate configuration using Let’s Encrypt
β”‚
β”œβ”€β”€ db-migrate-job.yaml
β”‚   # Kubernetes Job for database migrations
β”‚
β”œβ”€β”€ iam-policy.json
β”œβ”€β”€ iam_policy.json
β”œβ”€β”€ trust-policy.json
β”‚   # IAM and trust policies used for AWS EKS integrations
Loading similar projects...