From dcbcd2b03819a0575157914a61e99e2e96bbce1a Mon Sep 17 00:00:00 2001 From: Emeline Nerot Date: Wed, 7 May 2025 08:53:15 +0000 Subject: [PATCH] This is it --- Exam/README.md | 86 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 64 insertions(+), 22 deletions(-) diff --git a/Exam/README.md b/Exam/README.md index 4c700ac..015d5e6 100644 --- a/Exam/README.md +++ b/Exam/README.md @@ -1,28 +1,70 @@ -# Todo App - -This is a project built using [Convex](https://convex.dev) as its backend. - -This project is connected to the Convex deployment named [`flexible-squid-354`](https://dashboard.convex.dev/d/flexible-squid-354). - -## Project structure - -The frontend code is in the `app` directory and is built with [Vite](https://vitejs.dev/). - -The backend code is in the `convex` directory. - -`npm run dev` will start the frontend and backend servers. +# To do app -## App authentication +## Description -Chef apps use [Convex Auth](https://auth.convex.dev/) with Anonymous auth for easy sign in. You may wish to change this before deploying your app. +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. -## Developing and deploying your app +## Public Cloud and Services Used -Check out the [Convex docs](https://docs.convex.dev/) for more information on how to develop with Convex. -* If you're new to Convex, the [Overview](https://docs.convex.dev/understanding/) is a good place to start -* Check out the [Hosting and Deployment](https://docs.convex.dev/production/) docs for how to deploy your app -* Read the [Best Practices](https://docs.convex.dev/understanding/best-practices/) guide for tips on how to improve you app further +- **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. -## HTTP API +## 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! ^^ ** -User-defined http routes are defined in the `convex/router.ts` file. We split these routes into a separate file from `convex/http.ts` to allow us to prevent the LLM from modifying the authentication routes.