Nitin Chandrachoodan and I teach the Modern Application Development course at IITM as part of the Online BSc Degree program. In part one of this course, Nitin handles theory, and I run all the lab parts. Here are the screen-casts from my sessions. You will need a computer with some tools installed (mentioned in the screen-casts) if you want to work along with me. I have a separate page for Modern Application Development - 2, in case you were looking for that.
Chapter | Title | Description | Length |
---|---|---|---|
1 | Creating and Serving HTML Document | - What is an HTML Document - How it is structured - How to serve it | 00:18:00 |
2 | Adding style to your HTML Document using Inline CSS | - What is CSS - How to use inline CSS | 00:16:00 |
3 | Introduction to Internal and External CSS | - How to use style tag - How to use external CSS files | 00:16:56 |
4 | Introduction to CSS selectors | - How to use CSS selectors - Class, ID and Type - selectors - Relationship based - Pseudo-class selectors - Pseudo-elements selectors - Attribute based selectors | 00:25:53 |
5 | Introduction to Bootstrap | - What is bootstrap - How to use it | 00:24:00 |
6 | Introduction to Jinja2 - Part 1 | - String formatting in Python - f-strings - Jinja2 | 00:20:02 |
7 | Introduction to Jinja2 - Part 2 | - Creating HTML documents using Jinja2 | 00:19:22 |
8 | Basics of Browser Deverloper Tools | - Browser Developer Tool - How to use it | 00:32:00 |
9 | Introduction to Flask | - What is Flask - Simple Flask app | 00:30:55 |
10 | SQLite | - What is SQLIte - How to create a SQLite database - What tools to use it explore | 00:13:09 |
11 | Introduction to SQLAlchemy | - What is ORM - Options in Python World - Install and use SQLAlchemy - Models in SQLAlchemy - SQLAlchemy Engine, Connection, Session - Connecting to SQliteDB - Running queries - Transactions: Commit and rollbacks | 00:32:42 |
12 | Introduction to Flask-SQLAlchemy - 1 | - What is Flask-SQLAlchemy - Install and setup inside a Flaks App - Write Models - Connect to DB - Query the DB inside controller | 00:19:14 |
13 | Introduction to Flask-SQLAlchemy - 2 | - More querying the DB - Display the values using Jinja Template | 00:23:28 |
14 | Structure of a Flask App | - How to structure a flask app - Where is the application setup - Where is configuration - Where are the models - Where are the controllers - Where are the templates - Using static files - requirement.txt | 00:27:18 |
15 | Documenting Open API | - Real world API documentation examples - What is Open API documentation - How to create a Open API documentation - How to explore one - Tools available | 00:25:53 |
16 | Introduction to Flask-RESTful - I | - Install and setup flask-restful - Reading a OpenAPI document - Implementing API based on the documentation - Testing using API tools | 00:59:03 |
17 | Introduction to Flask-RESTful - 2 | - Continue to build and test APIs | 00:19:10 |
18 | Logging | - What is logging - Why logging - How to do in Python - Logging levels, formatters - How to do in Flask Apps | 00:08:43 |
19 | Debugging | - Configuring DEBUG in Flask App - Using Debugging mode in Flask AP - Security implications - Using PDB in Flask App - Interacting with PDB to Debug - Using Flask Shell to debug | 00:12:39 |
20 | Introduction to Indexing | - How to use Explain SQL - How to read it - What are database indexes - How to use them in your application - Create some indexes | 00:08:15 |
21 | Introduction to FTS (Full text search) | - What is Full Text Search - How is it supported in SQLite - Create search table using fts5 in SQLite - Create Triggers to update the search table on data change - Use the search table from SQLAlchemy and Flask - Add search functionality to your flask app | 00:29:04 |
22 | Basics of JavaScript Usage | - What is JavaScript - How to use it inside HTML - How to link to external JS file - Events - DOM Manipulation - What is Fetch - How to use Fetch with your Flask Application | 00:47:01 |
23 | Introduction to Flask-Security | - What is Authentication and Authorization - What is RBAC - Installing and configuring Flask-Security - Creating User and Role Tables - Implementing Email based Login - Implementing Role based Authorization - Using current_user in controller and templates | 00:46:09 |
24 | Testing | - Testing - Unit Testing v/s Functional Testing - Pytest - Setting up configuration for testing - Pytest Flow - Writing a simple Pytest - Running Tests - Using Flask Client to test Flask App - Writing a simple test case for Flask - Fixtures - setup and teardown - Running with Fixtures - Using conftest.py - Writing Test Classes - Login/Auth inside tests - Setting up and running coverage | 00:45:19 |
25 | Database Migrations | - What are DB Migrations? - Why are they required - Installing Flask-Migrate - Configuring Flask-Migrate - Intialize the DB migration - Create the initial migration - Running Upgrades - Adding migration manually - Settings not to generate - Drop tables - Settings to ignore virtual tables or views - Auto generating migrations - Upgrading and downgrading | 00:30:09 |