# To do app ## Description This is a Todo web application builds for the final exam for the course Cloud technologies. The application is a todo list manager designed for users to keep track of their daily tasks. This is designed to be a functional demonstration of cloud deployment, utilizing multiple containers and services. ## Public Cloud and Services Used - **Public Cloud Provider**: Microsoft Azure - **Cloud Services**: - **Azure Virtual Machines**: For hosting the application server. - **Azure SQL Database**: For managed database services. - **Azure Blob Storage**: For storing static assets and backups. - **Kubernetes/Docker Objects**: - **Docker Containers**: Used for microservices architecture. - **Kubernetes Pods**: For managing containerized applications. - **Persistent Volumes**: - **Azure Disk Storage**: For persistent data storage. - **Databases**: - **Azure SQL Database**: Used as the primary database for the application. ## Files and Their Contents - **`.env`**: Environment variables for configuration. - **`.gitignore`**: Specifies files and directories to ignore in Git. - **`components.json`**: Configuration for application components. - **`docker-compose.yml`**: Docker Compose file for defining and running multi-container Docker applications. - **`Dockerfile`**: Instructions to build the Docker image. - **`nginx.conf`**: Nginx configuration file for the web server. - **`package.json`**: Node.js dependencies and scripts. - **`final-cloud.com_ssl_certificate.cer`**: SSL certificate for HTTPS. - **`index.html`**: Main HTML file for the web application. - **Other configuration files**: `eslint.config.js`, `postcss.config.cjs`, `tailwind.config.js`, `tsconfig.json`, etc. ## Instructions to View and Use the Application 1. **Prerequisites**: - Ensure you have Docker and Docker Compose installed on your local machine. - Ensure you have the necessary Azure credentials and permissions to deploy services. 2. **Build and Run the Application**: - Open a terminal and navigate to the project directory. - Build the Docker image using the following command: ```bash docker-compose build ``` - Start the application using Docker Compose: ```bash docker-compose up -d ``` - This will deploy the application using the configurations specified in `docker-compose.yml`. 3. **Access the Application**: - Open your web browser. - Navigate to `https://final-cloud.com`. ## Instructions to Remove the Application 1. **Stop and Remove Containers**: - Open a terminal and navigate to the project directory. - Stop and remove the containers, networks, and other resources defined in the `docker-compose.yml` file: ```bash docker-compose down ``` 2. **Clean Up Azure Resources**: - Manually delete any Azure resources created for this application, such as virtual machines, Kubernetes clusters, and storage accounts, through the Azure portal or using Azure CLI commands. **Hope you'll enjoy my application! ^^**