Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rproenza86/mern-on-aws


https://github.com/rproenza86/mern-on-aws

api-gateway authorizer-serverless aws aws-cdk-typescript aws-cognito aws-s3 aws-sdk-javascript cloudfront dynamodb iac lambda-functions reactjs s3-bucket

Last synced: 1 day ago
JSON representation

Awesome Lists containing this project

README

        

# Project README - TODO Web App

## Overview
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.

## Features
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.

## Technical Details

### Frontend

#### Technologies & Libraries
- 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.

#### Key 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.

### Backend

#### Technologies & Libraries
- 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.

#### Lambda Functions
- 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.

### Infrastructure

#### Technologies & Frameworks
- 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.

#### Key Constructs
- 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.

#### Deployment
- S3 Bucket: Hosts the static files for the frontend.
- CloudFront: CDN service that securely delivers data, videos, applications, and APIs to customers globally.

### Security

#### Authentication & Authorization
- **Amazon Cognito**: Used for user authentication and authorization.
- **API Gateway Authorizers**: Secures API endpoints using Cognito user pools.

### Programming Techniques
- **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.

## Conclusion
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.