Description
In this course, you will learn :
- How a large application gets built up in stages.
- Build complex web applications and websites.
- Bid for Flask / web development freelance work.
- Confidence to apply for Flask positions at software companies.
- Proficiency with server-side development and databases.
- An awesome Docker based development environment.
Syllabus :
1. Application Overview
- Going over the Demo App That We'll Build
- Visualizing the Application's Architecture
2. Preparing to Follow Along
- Setting up an Initial Course Folder
- Downloading the Course's Material
- Installing a Code Editor
3. Getting Familiar with Docker
- Why Is It worth Using Docker?
- Installing Docker on Linux, macOS and Windows
- Making Sure Docker Works on Your System
4. Creating a Base Flask App
- Exploring the App's Package Dependencies
- Taking a Look at the Application File
- Investigating the Dockerfile
- Running the Flask Application
- Dealing with Configuration Settings
- Creating a Base Flask App - Coding Challenge
5. Blueprints and Jinja 2 Templates
- Creating Our First Flask Blueprint
- Deciding on a Look for Our Application
- Understanding Jinja 2 Templates
- Creating the Home Page
- Adding a Few Additional Pages
- Blueprints and Jinja 2 Templates - Coding Challenge
6. Testing and Code Quality
- Going over the requirements.txt Changes
- Getting Comfortable Writing Tests
- Investigating Our Code Test Coverage
- Performing Static Analysis on the Code Base
- Testing Code Quality - Coding Challenge
7. Creating a CLI Script
- Why Do We Need a CLI Script?
- Going over New Content Added to the Project
- Getting Familiar with Click
- Running the Commands We Created
- Creating a CLI Script - Coding Challenge
8. Using Our First Flask Extension
- Going over the requirements.txt Changes
- Debug Toolbar
- Using Our First Flask Extension - Coding Challenge
9. Creating a Contact Form
- Going over the requirements.txt Changes
- Configuring the App to Send e-mail
- Adding the Contact Blueprint
- Reviewing the Views
- Looking into the Templates and Macros
- Handling Forms with Flask-WTForms
- Our First Taste of Celery
- Running Celery with Docker Compose
- Confirming It Works with Tests
- Creating a Contact Form - Coding Challenge
10. Creating a Complete User System
- Going over the requirements.txt Changes
- Configuring the App to Handle Users
- Adding the User Blueprint
- Exploring the User Model
- Initializing the Database
- Logging Users in and Out
- Registering New Users
- Welcoming New Users
- Allowing Users to Update Their Settings
- Dealing with Password Resets
- Modifications to Previous Blueprints
- Confirming It Works with Tests
- Creating a Complete User System - Coding Challenge
11. Creating a Custom Admin Dashboard
- Why Are We Not Using Flask-Admin?
- Adding the Admin Blueprint
- Viewing the Main Dashboard
- Listing Users
- Editing Users
- Generating Fake Users with the CLI
- Searching and Sorting Users
- Deleting Users
- Confirming It Works with Tests
- Creating a Custom Admin Dashboard - Coding Challenge
12. Logging, Middleware and Error Handling
- Tracking Response Times for All Requests
- Configuring Log Levels
- Using Flask's Logger
- Integrating Google Analytics
- Fixing IP Addresses with Middleware
- Custom Error Pages
- Handling Exceptions in Production
- Logging, Middleware and Error Handling - Coding Challenge
13. Quality of Life CLI Improvements
- Creating Secure Tokens
- Viewing All Route Endpoints
- Breaking down Lines of Code
- Quality of Life CLI Improvements - Coding Challenge
14. Accepting Recurring Payments
- Going over the requirements.txt Changes
- Configuring the App to Handle Payments
- Adding the Billing Blueprint
- Visualizing the Data Model Relationships
- Creating Subscription Plans
- Rendering Pricing Tables
- Subscribing to a Plan (Front-End)
- Subscribing to a Plan (Back-End)
- Updating Your Payment Method
- Informing Users of Expiring Credit Cards
- Updating Your Subscription Plan
- Cancelling Your Subscription
- Extending the Admin Dashboard
- Managing Coupons in the Admin (Front-End)
- Managing Coupons in the Admin (Back-End)
- Expiring and Subscribing with Coupons
- Managing Subscriptions in the Admin
- Generating Random Invoices
- Reviewing Your Billing Details
- Integrating Stripe Webhooks
- Confirming It Works with Tests
- Sales Charts, Refunds and More
- Accepting Recurring Payments - Coding Challenge
15. Building the Snake Eyes Game
- Configuring the App to Handle Betting
- Adding the Betting Blueprint
- Exploring the Bet and User Models
- Giving Subscribers Coins
- Placing Bets (Front-End)
- Placing Bets (Back-End)
- Generating Random Bets
- Viewing Betting History
- Modifying the Admin User Details
- Coding Exercise Homework Assignments
- Confirming It Works with Tests
16. Processing Microtransactions
- Configuring the App for Purchases
- Accepting Payments (Front-End)
- Accepting Payments (Back-End)
- Viewing the New Invoice History
- Adding to and Modifying the Custom Admin
- Confirming It Works with Tests
- Processing Microtransactions - Coding Challenge
17. Database Migrations
- What Is a Database Migration?
- Going over the requirements.txt Changes
- Configuring Alembic
- Creating Our First Migration
- Sidetracking with pgAdmin III
- Running Our First Migration
- Creating and Running a Second Migration
- Viewing the History of Your Migrations
- Auto-Generating Migration Scripts
18. Internationalization (i18n)
- What Is Internationalization?
- Going over the requirements.txt Changes
- Configuring the App to Handle i18n
- Adding i18n Support to the Application
- Updating the User Blueprint to Support i18n
- Updating the Billing Blueprint to Support i18n
- Generating the Primary messages.pot File
- Updating Translations for Multiple Languages
- Adding Additional Languages
- Confirming It Works with Tests