## 1. CI/CD Workflow Implementation - [x] 1.1 Create the CI/CD workflow file at `.github/workflows/ci-cd.yml`. - [x] 1.2 Configure the workflow to trigger on `push` events to the `main` branch. - [x] 1.3 Define a job that runs on a self-hosted runner with the label "run". - [x] 1.4 Add steps to checkout the repository code. - [x] 1.5 Add steps to build the backend Docker image. - [x] 1.6 Add steps to build the frontend Docker image. - [x] 1.7 Add steps to tag the built images with `latest` and the short commit SHA. - [x] 1.8 Add steps to log in to the Gitea Docker package registry using secrets. - [x] 1.9 Add steps to push the backend Docker image to the Gitea registry. - [x] 1.10 Add steps to push the frontend Docker image to the Gitea registry. ## 2. Documentation Creation - [x] 2.1 Create or update the `README.md` file in the project root. - [x] 2.2 Add a brief application overview to `README.md`. - [x] 2.3 Add a list of prerequisites for running the application to `README.md`. - [x] 2.4 Add step-by-step instructions for running the application locally using Docker Compose to `README.md`. - [x] 2.5 Add instructions on how to access the frontend and backend services (URLs/ports) to `README.md`.