Añadir z1/README.md
This commit is contained in:
parent
e9601521a7
commit
c88df7a08c
143
z1/README.md
Normal file
143
z1/README.md
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
# Assignment 1 – Docker Notes App
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This project is a simple **Notes Application** built using Docker.
|
||||||
|
It demonstrates how to run a multi-container application composed of:
|
||||||
|
|
||||||
|
- Frontend (Nginx)
|
||||||
|
- Backend (Flask REST API)
|
||||||
|
- Database (PostgreSQL)
|
||||||
|
|
||||||
|
The application allows users to:
|
||||||
|
- Add notes
|
||||||
|
- View saved notes
|
||||||
|
- Delete notes
|
||||||
|
|
||||||
|
All data is stored persistently using a Docker volume.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The application consists of three services:
|
||||||
|
|
||||||
|
### 1. Frontend
|
||||||
|
- Technology: Nginx
|
||||||
|
- Serves static HTML page
|
||||||
|
- Proxies API requests to backend
|
||||||
|
- Accessible via browser
|
||||||
|
|
||||||
|
### 2. Backend
|
||||||
|
- Technology: Python (Flask)
|
||||||
|
- Provides REST API:
|
||||||
|
- `GET /api/notes`
|
||||||
|
- `POST /api/notes`
|
||||||
|
- `DELETE /api/notes/{id}`
|
||||||
|
- Connects to PostgreSQL database
|
||||||
|
|
||||||
|
### 3. Database
|
||||||
|
- Technology: PostgreSQL 16
|
||||||
|
- Stores notes data
|
||||||
|
- Uses persistent Docker volume
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Networking
|
||||||
|
|
||||||
|
All containers are connected via a Docker virtual network:
|
||||||
|
|
||||||
|
- **Network name:** `zkt_net`
|
||||||
|
|
||||||
|
This allows communication between:
|
||||||
|
- frontend → backend
|
||||||
|
- backend → database
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Persistent Storage
|
||||||
|
|
||||||
|
- **Volume name:** `zkt_db_data`
|
||||||
|
- Purpose: store PostgreSQL data
|
||||||
|
- Ensures data is not lost after stopping containers
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Containers Used
|
||||||
|
|
||||||
|
| Container Name | Description |
|
||||||
|
|----------------|------------------------|
|
||||||
|
| zkt_frontend | Nginx web server |
|
||||||
|
| zkt_backend | Flask API |
|
||||||
|
| zkt_db | PostgreSQL database |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Docker
|
||||||
|
- Docker Compose (plugin)
|
||||||
|
- Linux / WSL / Docker Desktop
|
||||||
|
- Web browser
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## How to Run the Application
|
||||||
|
|
||||||
|
### 1. Prepare the application
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./prepare-app.sh
|
||||||
|
|
||||||
|
### 2. Start the application
|
||||||
|
|
||||||
|
./start-app.sh
|
||||||
|
|
||||||
|
### Then open your browser:
|
||||||
|
|
||||||
|
http://localhost:8080
|
||||||
|
|
||||||
|
|
||||||
|
### 3. Stop the application
|
||||||
|
./stop-app.sh
|
||||||
|
|
||||||
|
### 4. Remove the application
|
||||||
|
./remove-app.sh
|
||||||
|
|
||||||
|
## Testing the Application
|
||||||
|
|
||||||
|
-Open the web interface
|
||||||
|
-Add a note
|
||||||
|
-Verify it appears in the list
|
||||||
|
-Stop and restart the app:
|
||||||
|
./stop-app.sh
|
||||||
|
./start-app.sh
|
||||||
|
-Refresh the page
|
||||||
|
|
||||||
|
## If the note is still there → persistence works correctly
|
||||||
|
|
||||||
|
## Key Concepts Demonstrated
|
||||||
|
|
||||||
|
-Multi-container Docker application
|
||||||
|
-Docker Compose usage
|
||||||
|
-Container networking
|
||||||
|
-Persistent storage with volumes
|
||||||
|
-REST API communication
|
||||||
|
-Reverse proxy with Nginx
|
||||||
|
|
||||||
|
## Use of Artificial Intelligence
|
||||||
|
|
||||||
|
Artificial intelligence was used to:
|
||||||
|
|
||||||
|
-Design application architecture
|
||||||
|
-Generate initial code (frontend, backend, Docker config)
|
||||||
|
-Explain Docker concepts
|
||||||
|
-Assist with debugging and troubleshooting
|
||||||
|
-Prepare documentation
|
||||||
|
|
||||||
|
## Tool used:
|
||||||
|
|
||||||
|
-ChatGPT
|
||||||
|
-Gemini
|
||||||
|
|
||||||
|
## Pablo Pérez Arcas
|
||||||
Loading…
Reference in New Issue
Block a user