This is it

This commit is contained in:
Emeline Nerot 2025-05-07 08:53:15 +00:00
parent 7788bd0a20
commit dcbcd2b038

View File

@ -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.