Skip to main content
CF

Complete FastAPI REST course + AWS + Emails + Payments

9h 38m 51s
English
Paid

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.

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 JWTauthentication, 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!

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 103 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 103 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction
All Course Lessons (103)
#Lesson TitleDurationAccess
1
Introduction Demo
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
Unlock unlimited learning

Get instant access to all 102 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites are needed before taking this course?
Before enrolling in this course, it's beneficial to have a basic understanding of relational and non-relational databases, as the course includes quick refreshers on these topics. Familiarity with SQL and ORM concepts is also helpful, as the course provides a quick overview of these areas. Basic knowledge of CRUD operations can also be advantageous, as the course includes a quick refresher to prepare students for the project tasks.
What kind of project will I build during the course?
Throughout the course, you will work on creating a complete project using FastAPI. This includes setting up a relational database, creating tables and endpoints, and testing the application with tools like Postman. You will also integrate third-party services and libraries to simulate real-world application tasks, and incorporate a ready-made frontend project to enhance the learning experience.
Who is the target audience for this course?
This course is designed for individuals who are looking to gain practical experience with FastAPI, including developers who want to enhance their skills in building RESTful APIs. It is suitable for those who wish to understand how to integrate third-party services and libraries into a project, and for anyone interested in applying best programming principles in a real-world application context.
What specific tools or platforms does this course cover?
The course extensively covers FastAPI for building RESTful APIs. It also involves using Postman for testing applications and Alembic for database migrations. Additionally, the course touches on authentication and authorization concepts, including JWT and a custom HTTPBearer class, and discusses programming principles like KISS, DRY, SoC, and SOLID.
What is not covered in this course?
While the course covers many aspects of building a FastAPI project, it does not delve into frontend development beyond integrating a ready-made frontend project. The course focuses primarily on backend development and does not include detailed discussions on frontend frameworks or technologies.
How much time should I expect to commit to this course?
The course consists of 103 lessons, with the runtime details not specified. Given the extensive list of topics and practical exercises, students should be prepared to dedicate a significant amount of time to both watching the lessons and practicing the exercises. It is advisable to pace oneself according to personal learning speed and thoroughly engage with each section.
How can the skills learned in this course be applied to other careers or courses?
The skills acquired from this course, particularly in building RESTful APIs with FastAPI, are directly applicable to careers in software development, especially in backend and full-stack development roles. The understanding of programming principles like KISS, DRY, SoC, and SOLID can also benefit students in other programming and software engineering courses, providing a strong foundation for advanced study and professional application.