
What you will need in order to take this course.
Introduction to the course which explains everything you need to know before getting started.
Overview of the course structure
How to get help if you get stuck when following the steps in this course.
Overview of the app we will be building in this course.
Technologies which we will use to build our app.
How we will structure our Django project
Lesson on Test Driven Development (TDD) and why it's so important.
All of the tools we'll be installing.
How to check that everything has been installed successfully.
Explains how we will structure the project.
Create a new project on GitHub.
Explains how we will use Docker to run our Django project.
Define the Python requirements we will need for our project.
Create a new Dockerfile for our project.
Create a new Docker Compose configuration.
Explains how the linting and tests will work with our project.
Configure flake8 to do our linting.
Create a new Django project through Docker Compose.
Run our project using Docker Compose.
Overview of what we did in this section.
Explains what GitHub Actions is and how we will use it for our project.
Explains how GitHub Actions configuration works.
Configure GitHub Actions for our project.
Test GitHub actions by deliberately breaking and then fixing our code.
Learn how testing works with Django.
Write a basic unit test.
Write a basic unit test using the TDD process.
Learn about mocking.
Common issues when running tests.
How we will configure our database architecture for development.
Add a database service to our Docker Compose configuration file.
Learn how database configuration works with Django
Install the PostgreSQL adaptor.
Configure our Django project to use database service.
Explains the database race condition issue.
Create a "core" app for containing our shared app code.
Write unit tests for our wait_for_db spec.
Implement wait_for_db command.
Learn how to handle database migrations with Django and Docker.
Modify project configuration to use our new wait_for_db command.
Summarise what we did in the database configuration section.
How we will integrate our Django user model.
Design overview for the custom user model we will be building.
Create a test for our user model.
Implement our user model to make tests pass.
Normalise email addresses to avoid issues with capitalisation.
Require that an email address is provided to the function.
Add support for creating superusers through the CLI.
Test the new user model in the CLI
Summarise what we did in the Create User Model section.
Explains what the Django admin is and how we will use it.
Write tests for listing users in the Django admin.
Update the Django admin to list users.
Update Django admin to support modifying users.
Add support for creating users through the Django admin.
**NOTE: This course requires you to download Docker Desktop from Docker's website. If you are a Udemy Business user, please check with your employer before downloading software.**
Welcome to the advanced course on how to Build a Backend REST API using Python, Django (3.2), Django REST Framework (3.12), Docker, GitHub Actions, Postgres and Test Driven Development!
Whether you’re a freelance programmer, tech entrepreneur, or just starting out building backends - this course will help lay the foundation of your knowledge base and give you the tools to advance your skills with some of the most in-demand programming languages today.
APIs are the unsung heroes behind the technologies that we all love and use religiously.
One of the most critical components for any tech-based business is an API. So knowing how to create an API from start to finish is a vital skill to have as a developer. You cannot build a successful app without a backend REST API!
In this course I’ll show you how to build an advanced API that handles creating and updating user profiles, changing passwords, creating objects, uploading images, filtering and searching objects, and more.
The best way to learn anything is to do it. So the practical application of the course -- the project that you’ll build along side me -- is an API. A recipe API, to be specific.
You will learn how to build an advanced recipe API that allows you to upload and store some of your favourite recipes from photos and the web.
You’ll learn how to create objects i.e. recipes with titles, price points, cooking times, ingredients and tags like “comfort food”, “vegan” or “dessert”. Think of it as a virtual recipe box.
By the end of this course you will have built a fully functioning REST API that can handle:
User authentication
Creating objects
Filtering and sorting objects
Uploading and viewing images
You’ll also learn, in detail how to:
Setup a project with Docker and Docker-Compose
Configure GitHub Actions to automatically run linting and unit tests
Write unit tests using the Django Test Framework
Apply best practice principles including Test Driven Development
Handle uploading media files with Django
Customize the Django admin
Configure a Postgres database
This course has one singular focus: To teach you how to create an advanced API from start to finish using best practice principles and Test Driven Development.
This course is NOT FOR YOU:
If you’re looking for a course to build an API, a front end, and deployment
If you’re looking to build 10 different apps in one course
If you want to learn lots of different technologies and approaches to app development in general
This is a hands-on course, with a bit of theory and lots of opportunities to test your knowledge.
The content is challenging but rewarding. Ready for it? Let’s dive in!
**PLEASE NOTE: You cannot run Docker on Windows 10 Home edition. This is because Windows 10 Pro or Enterprise is required in order to use Hyper-V which Docker uses for virtualization. To take this course you have two options. These are covered in Lecture 6, which is free to preview before purchasing the course.