Introduction
  • Welcome to Build a Backend API with Django REST Framework - Advanced
  • Intro to the course
  • Course structure
  • How to get the most out of this course
  • How to get help
  • Windows 10 Home Workaround
Technologies used in this course
  • Python
  • Django
  • Django REST Framework
  • Docker
  • Travis-CI
  • Postgres
  • What is test driven development?
Installation and setup
  • System setup
  • Windows 10 Home Workaround
Create new project
  • Setup new GitHub project
  • Add Dockerfile
  • Configure Docker Compose
  • Custom configuration for Linux users
  • Create Django project
Setup automation
  • Enable Travis-CI for project
  • Create Travis-CI configuration file
  • Travis-CI
Introduction to test driven development (TDD)
  • Writing a simple unit test
  • Writing a unit test with TDD
  • Django Unit Tests
Configure Django custom user model
  • Create core app
  • Add tests for custom user model
  • Implement custom user model
  • Normalize email addresses
  • Add validation for email field
  • Add support for creating superusers
  • Django custom user model
Setup Django admin
  • Add tests for listing users in Django admin
  • Modify Django admin to list our custom user model
  • Modify Django admin to support changing user model
  • Modify Django admin to support creating users
Setting up database
  • Add postgres to docker compose
  • Add postgres support to Dockerfile
  • Configure database in Django
Waiting for postgres to start
  • Mocking with unittests
  • Add tests for wait_for_db command
  • Add wait_for_db command
  • Make docker compose wait for db
  • UPDATE: Make Travis-CI wait for db
  • Test in browser
  • Mocking
Create user management endpoints
  • Create users app
  • Add tests for create user API
  • Add create user API
  • UPDATE: Fix for testing password too short
  • Add tests for creating a new token
  • Add create token API
  • Add tests for manage user endpoint
  • Add manage user endpoint
Create tags endpoint
  • Create recipe app
  • Add tag model
  • Add tests for listing tags
  • Add feature to list tags
  • Add create tags feature
Create ingredients endpoint
  • Add ingredient model
  • Add tests for listing ingredients
  • Implement feature for listing ingredients
  • Implement feature for creating ingredients
  • Re-factor tags and ingredients viewsets
Create recipe endpoint
  • Add recipe model
  • Add tests for listing recipes
  • Implement feature for listing recipes
  • Add tests for retrieving recipe detail
  • Implement feature for retrieving recipe detail
  • Add tests for creating recipes
  • Implement feature for creating recipes
  • Add tests for updating recipes
Add upload image endpoint
  • Add Pillow requirement
  • Modify recipe model
  • Add tests for uploading image to recipe
  • Add feature to upload image
Add filtering
  • Add tests for filtering recipes
  • Implement feature to filter recipes
  • Add tests for filtering tags and ingredients
  • Implement feature for filtering tags and ingredients
Summary
  • What was covered in this course