Complete FastAPI REST course + AWS + Emails + Payments
Starting with a new framework is easy. Mastering it is hard. Learning by doing is the most successful way to gain your skills on a given topic quick and easy.
In this course, we will create a complete project with FastAPI, following the best programming principles. We will integrate third-party services and libraries so that we can be as close as possible to real-world application tasks, will incorporate ready Frontend project.
More
We will implement advanced tasks such as:
Integrate AWS S3 service for storing files
Integrate Amazon Simple Email Service for sending emails from our code
Integrate "Wise" Payment Provider to refund the users of our application.
The application will have different levels of access - users (complainers), approvers, and admins.
We will implement JWT, authentication, and authorization.
We will work with schemas to validate our input data and shape the response data.
We will implement all of these, and at the same time, we will follow best practices for formatting the code and using a version control system.
We will integrate a ready frontend project (written in Angular 2+) to understand better how our backend is working.
We will use a relational database (PostgreSQL) to store our information.
All the materials are created so that you can interact with them and enjoy the overall course experience.
All materials are downloadable. As a bonus to this course, you will receive a book for each section, with copy-pastable code and explanations.
You will have access to the GitHub repo with all code shown in the course.
Let's start!
Watch Online Complete FastAPI REST course + AWS + Emails + Payments
# | Title | Duration |
---|---|---|
1 | Introduction | 02:09 |
2 | Example | 06:34 |
3 | Introduction | 00:30 |
4 | Relational database (quick refresh) | 02:43 |
5 | Non-relational (quick refresh) | 02:16 |
6 | SQL, ORM, Models (quick refresh) | 03:59 |
7 | What is CRUD? (quick refresh) | 01:36 |
8 | The task | 00:46 |
9 | Setup the IDE | 03:03 |
10 | Create the first table | 06:39 |
11 | Create the endpoints | 08:36 |
12 | Test the application with Postman | 01:47 |
13 | Test the application with Postman (common problems) | 04:22 |
14 | Test the endpoints | 03:30 |
15 | Alembic | 07:31 |
16 | Create One-to-many | 04:24 |
17 | Adjust the endpoints and queries | 06:30 |
18 | Create Many-to-many | 06:11 |
19 | The .env file | 03:07 |
20 | Step by step guide | 00:53 |
21 | Introduction | 00:38 |
22 | The skeleton | 11:29 |
23 | Input (request) schema for user sign in | 09:21 |
24 | Validation with class method | 07:32 |
25 | Validation with custom field | 03:52 |
26 | Output (response) schema for user sign in | 10:01 |
27 | BONUS - hashing passwords | 04:38 |
28 | Introduction | 00:41 |
29 | JWT (quick refresh) | 02:46 |
30 | Authentication vs Authorization | 03:14 |
31 | Code example | 01:32 |
32 | Encode token | 04:43 |
33 | Return the token + common errors | 05:35 |
34 | Authentication - Custom HTTPBearer class | 08:51 |
35 | Create protected endpoint for "get all clothes" | 11:27 |
36 | Add role to the user model | 04:47 |
37 | Adjusting the migration for the user role | 03:09 |
38 | Authorization | 10:51 |
39 | What and why? | 02:49 |
40 | Standards | 17:45 |
41 | Black | 03:11 |
42 | KISS | 02:16 |
43 | DRY | 01:10 |
44 | SoC | 01:24 |
45 | SOLID | 06:17 |
46 | Project diagram | 05:30 |
47 | Introduction | 06:56 |
48 | Set up user model and db config | 15:15 |
49 | Complaint model | 06:35 |
50 | Set up alembic and secrets | 09:45 |
51 | Adjust and refactor existing models | 01:56 |
52 | Authentication manager | 10:46 |
53 | User manager and register functionality | 12:56 |
54 | Configure routes | 02:52 |
55 | Configure main.py | 02:24 |
56 | Login | 04:16 |
57 | User schemas | 03:26 |
58 | Test the app - fix common errors | 08:08 |
59 | Add phone column, migrate and test | 08:29 |
60 | Complaint manager | 06:40 |
61 | Complaint schemas | 04:39 |
62 | Authorization functions | 01:57 |
63 | List/Create Complaint endpoints | 06:35 |
64 | Bind routes and test | 03:19 |
65 | Get the complainer from request | 03:15 |
66 | Admin Part - delete complaint | 06:13 |
67 | Admin Part - get/search users | 06:31 |
68 | Admin Part - user schema | 03:15 |
69 | Admin Part - change other users role | 05:27 |
70 | Script for creating users on the server | 09:14 |
71 | Approver Part - approve/reject complaints | 07:23 |
72 | Working with Git + tips and tricks for more quality code | 11:33 |
73 | CORS | 03:15 |
74 | Next steps | 01:24 |
75 | What is a third party | 01:20 |
76 | Famous services | 04:39 |
77 | About the payment provider | 01:40 |
78 | Set up AWS account and choose free plan | 03:25 |
79 | Set up your bucket and permissions | 04:55 |
80 | Edit bucket policy | 01:08 |
81 | Fetch credentials | 04:58 |
82 | Encode the base64 encoded photo | 11:11 |
83 | Set up the s3 Service | 08:52 |
84 | Integrate the functionality in the code and test manually | 15:48 |
85 | Set up SES and verify your identities | 03:23 |
86 | Set up SES Service | 08:17 |
87 | Integrate SES functionality in the existing code and test manually | 04:50 |
88 | Set up Wise account | 03:14 |
89 | Get the API key | 02:16 |
90 | Create Wise Service and get the profile id | 08:39 |
91 | The response structure | 03:45 |
92 | Create a quote | 09:45 |
93 | Create recipient account | 07:29 |
94 | Create transfer | 05:36 |
95 | Fund the transfer | 06:15 |
96 | Add transaction table | 06:54 |
97 | Integrate Wise for creating complaint | 07:03 |
98 | Test manually | 04:44 |
99 | Integrate Wise for approving complaint | 06:38 |
100 | Integrate Wise for rejecting a complaint | 07:08 |
101 | Database transactions | 10:14 |
102 | FE integration | 17:03 |
103 | Many thanks | 00:43 |