Skip to content

Commit db31b9f

Browse files
authored
Update README.md
1 parent 4dedc80 commit db31b9f

File tree

1 file changed

+149
-1
lines changed

1 file changed

+149
-1
lines changed

README.md

Lines changed: 149 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,152 @@
1-
# aws_tasks
1+
# Managin your personal tasks (both the backed API and frontend UI)
2+
3+
There are a lot of options to choose from when it comes to building a web application. Every step of the way, from the frontend to the backend to deployment, you'll have to choose the tools and technologies. This can be overwhelming.
4+
5+
Which backend framework? What about the testing library?
6+
Which JavaScript framework?
7+
Should I use a SQL or NoSQL database?
8+
Should I deploy to some cloud provider? Will that cost me a lot?
9+
What about scalability of my application?
10+
How should I deploy it? Manually or CI/CD?
11+
If you want to build modern, insanely scalable applications that run on AWS for low prices this is course for you. It will teach you how to:
12+
13+
Build serverless FastAPI APIs that run on AWS Lambda
14+
Use DynamoDB as the main database for your applications
15+
Deploy FastAPI apps to AWS Lambda using CI/CD on GitHub Actions and Serverless Framework
16+
Use Cognito for authentication inside your APIs
17+
Consume the backend FastAPI API from the frontend Vue application
18+
Deploy Vue applications to S3
19+
Use Cognito for authentication inside Vue applications
20+
Serve your applications with CloudFront CDNs on custom domains
21+
Set up monitoring and alerting for your applications with CloudWatch
22+
23+
## App overview
24+
25+
Deploys a web application (both the backend API and frontend UI) for managing your personal tasks. We'll cover the following use cases:
26+
27+
create a task
28+
list open tasks
29+
list closed tasks
30+
close a task
31+
You'll set up a git repository from scratch, build the API, set up a CI/CD pipeline, build a DynamoDB data model, use Cognito for authentication, build a Vue application, monitor your application, and deploy new versions of the application.
32+
33+
## Tools, Frameworks, and Services
34+
35+
### GitHub
36+
GitHub is a solution for managing the full software development lifecycle. You'll use it for:
37+
38+
external git repository
39+
CI/CD pipeline
40+
You can replace it with:
41+
42+
Bitbucket (with pipelines)
43+
GitLab
44+
GitHub + CircleCI
45+
46+
### Poetry
47+
Poetry is a tool used for Python dependency management. You'll use it for managing dependencies.
48+
49+
You can replace it with:
50+
51+
pip
52+
pipenv
53+
54+
### FastAPI
55+
FastAPI is a high-performance, easy-to-learn, fast-to-code, ready-for-production web framework for building APIs with Python. You'll use it for building a web application.
56+
57+
You can replace it with:
58+
59+
Flask
60+
Django
61+
Pyramid
62+
63+
### Vue
64+
Vue is a an approachable, performant, and versatile framework for building web user interfaces with JavaScript/TypeScript. You'll use it for building a web application.
65+
66+
You can replace it with:
67+
68+
React
69+
Svelte
70+
Angular
71+
72+
### pytest
73+
The pytest framework makes it easy to write Python tests. You'll use it to write tests for the web application.
74+
75+
You can replace it with:
76+
77+
unittest
78+
nose
79+
80+
### AWS DynamoDB
81+
Amazon DynamoDB is "fast, flexible NoSQL database service for single-digit millisecond performance at any scale". You'll use it to persist data used by the web application.
82+
83+
You can replace it with:
84+
85+
Postgres
86+
MongoDB
87+
88+
### AWS Cognito
89+
Amazon Cognito is AWS service that simplifies authentication management by a lot. You'll use it sign-up and sign-in your users.
90+
91+
You can replace it with:
92+
93+
Auth0
94+
Okta
95+
96+
### AWS Cloudwatch
97+
Amazon CloudWatch is a monitoring and observability service. You'll use it to gather and search logs and monitor resources (like CPU and memory usage) used by the web application.
98+
99+
You can replace it with:
100+
101+
Prometheus
102+
Datadog
103+
New Relic
104+
Splunk
105+
106+
### AWS Lambda
107+
AWS Lambda is a serverless, event-driven compute service that lets you run code for virtually any type of application or backend service without provisioning or managing servers. You'll use it to run API of your web application.
108+
109+
You can replace it with:
110+
111+
Azure Functions
112+
GCP Cloud Functions
113+
114+
### CloudFormation
115+
CloudFormation is an AWS service used to model, provision, and manage AWS resources. You'll use it to manage the AWS infrastructure (DNS, CloudFront, etc.) required for running your application.
116+
117+
You can replace it with:
118+
119+
Terraform
120+
Ansible
121+
Pulumi
122+
123+
### Serverless Framework
124+
Serverless Framework is framework used for developing, deploying, troubleshooting, and securing your serverless applications. You'll use it to manage application resources, like AWS Lambda functions and environment variables, and deploying your applications.
125+
126+
You can replace it with:
127+
128+
Zappa
129+
Chalice
130+
131+
### CloudFront
132+
CloudFront is low-latency content delivery network. You'll use it to serve the Vue application from S3 and API from Lambda.
133+
134+
You can replace it with:
135+
136+
Cloudflare
137+
Google Cloud CDN
138+
Microsoft Azure CDN
139+
140+
### Codecov
141+
Codecov is service that helps you track the coverage of your code. You can track changes and compare branches and commits. It helps to focus on changes instead of the current code coverage percentage.
142+
143+
You can replace it with:
144+
145+
Coveralls
146+
Github Action Code Coverage Report
147+
148+
### Mangum
149+
Mangum is an adapter for running ASGI applications in AWS Lambda environment. It handles API Gateway events sent to Lambda and responses returned from ASGI application.
2150

3151
## Infrastructure
4152

0 commit comments

Comments
 (0)