This project is a monorepo MERN stack web application designed to manage TODO tasks. It is hosted on AWS and utilizes various services and technologies for a robust, scalable application.
The application supports the following features:
- Create, retrieve, update, and delete TODO tasks.
- Real-time updates and state management on the frontend.
- Secure and scalable hosting on AWS.
- React: A JavaScript library for building user interfaces.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- React Context API: Used for state management across the React components.
- TodoList: Displays the list of TODO tasks and handles interactions.
- GlobalContext: Manages the global state of the application, including TODO tasks and loading states.
- Node.js: JavaScript runtime built on Chrome's V8 JavaScript engine.
- AWS Lambda: Event-driven, serverless computing service.
- AWS API Gateway: Fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs.
- Amazon Cognito: Provides user authentication and authorization.
- CreateTodoLambda: Handles the creation of new TODO tasks.
- GetTodosLambda: Retrieves all TODO tasks.
- UpdateTodoLambda: Updates existing TODO tasks.
- DeleteTodoLambda: Deletes TODO tasks.
- GenPresignedUrlLambda: Generates presigned URLs for S3 uploads.
- AWS CDK: Framework for defining cloud infrastructure using familiar programming languages.
- Amazon DynamoDB: NoSQL database service that provides fast and predictable performance with seamless scalability.
- Amazon S3: Object storage service that offers industry-leading scalability, data availability, security, and performance.
- BackendConstruct: Sets up the backend services including Lambda functions and API Gateway.
- DataBaseConstruct: Manages the DynamoDB resources.
- S3Construct: Manages the S3 buckets for static file hosting and image uploads.
- S3 Bucket: Hosts the static files for the frontend.
- CloudFront: CDN service that securely delivers data, videos, applications, and APIs to customers globally.
- Amazon Cognito: Used for user authentication and authorization.
- API Gateway Authorizers: Secures API endpoints using Cognito user pools.
- Infrastructure as Code (IaC): Using AWS CDK to define and provision AWS infrastructure.
- Serverless Architecture: Utilizing AWS Lambda for business logic, reducing the need for server management.
- Continuous Integration and Deployment: Automated build and deployment pipelines enhance the development process.
This project leverages modern web technologies and AWS services to deliver a scalable and maintainable TODO web application. It demonstrates effective use of serverless architecture and IaC for efficient cloud resource management.