*1. Application Description* This project is a simple full-stack web application deployed on Kubernetes. It allows users to submit names through a web interface and store them in a PostgreSQL database. The system consists of: A frontend (static HTML interface) A backend API built with Node.js (Express) A PostgreSQL database running as a StatefulSet with persistent storage The backend provides REST endpoints: POST /add → adds a name to the database GET /names → retrieves all stored names 2. Containers Used Backend (Node.js) Image: docker-app-backend:latest Purpose: Handles API requests and communicates with the database Database (PostgreSQL) Image: postgres:15 Purpose: Stores application data persistently 3. Kubernetes Objects Namespace Name: myapp Used to isolate all application resources Deployment Name: backend Runs the Node.js backend Ensures availability and automatic restart of the backend container StatefulSet Name: db Runs PostgreSQL Provides stable identity and persistent storage PersistentVolume (PV) Stores PostgreSQL data on node storage PersistentVolumeClaim (PVC) Automatically created via StatefulSet Requests storage for database persistence Services backend-service (NodePort) Exposes backend externally Accessible at: http://localhost:30007 db service (ClusterIP) Enables internal communication between backend and database Backend connects using hostname: db 4. Networking Kubernetes DNS allows communication between differents components of the application using service names. Backend communicates with database using db and external users access backend via NodePort service 5. Persistent Storage PostgreSQL uses: PersistentVolume (PV) and PersistentVolumeClaim (PVC) Using these ensures that data is not lost after pod restart and application state is preserved 6. Container Configuration Backend Port: 3000 Database connection: Host: db User: user Password: password Database: mydb Database Port: 5432 This uses persistent volume for data storage 7. Preparation Build backend image: docker build -t docker-app-backend ./backend 8. Deployment Apply all Kubernetes resources: kubectl apply -f namespace.yamlkubectl apply -f deployment.yamlkubectl apply -f service.yamlkubectl apply -f statefulset.yamlkubectl apply -f db-service.yaml 9. Checking Application Status kubectl get all -n myappkubectl get pods -n myappkubectl get svc -n myapp 10. Accessing the Application Backend API: http://localhost:30007 Frontend: Open frontend/index.html in a browser 11. Stopping the Application kubectl delete -f deployment.yamlkubectl delete -f service.yamlkubectl delete -f statefulset.yamlkubectl delete -f db-service.yamlkubectl delete namespace myapp 12. Removing All Resources kubectl delete namespace myapp 13. Used Resources Kubernetes Documentation: https://kubernetes.io/docs/ Docker Documentation: https://docs.docker.com/ PostgreSQL Docker Image Node.js Express Framework 14. Use of Artificial Intelligence Artificial intelligence tools were used to: Assist with debugging deployment issues Improve configuration of Kubernetes objects Help structure the project and documentation All implementation, testing, and understanding were performed independently. 15. Summary This project demonstrates: Containerized web application architecture Kubernetes Deployment and StatefulSet usage Persistent storage with PVC Internal service communication using DNS External access using NodePort The application is fully functional and can store and retrieve data using a Kubernetes-based backend and database. AI was use strictly for learninf concepts and debugging, all coding and implementation was done independently.