MAD-1 Theory: Modern Application Development 1 (Theory)

Modern Application Development 1 (Theory): week-wise syllabus, notes, short notes, and available revision material.

Ctrl K
2 resources in this course · 12 syllabus weeks

Modern Application Development 1 (Theory)

Diploma

Complete week-wise syllabus

Modern Application Development I — Theory (MAD-1) · 12 weeks

Week 1: Basic Terminologies of Web

Topics covered

  • Introduction to Web Applications
    • What is a web application?
    • Websites vs web applications
    • Static vs dynamic websites
    • Client-server architecture
    • Frontend and backend
    • Browser and web server
  • Internet and Networking Basics
    • Internet and World Wide Web
    • IP addresses
    • Domain names
    • DNS
    • Ports
    • TCP and UDP
    • Client-server communication
  • HTTP and HTTPS
    • HTTP request and response
    • HTTP methods
    • GET and POST
    • HTTP status codes
    • Request headers and response headers
    • HTTPS and TLS basics
  • Web Application Architecture
    • Three-tier architecture
    • Presentation layer
    • Application layer
    • Data layer
    • Separation of concerns
  • Web Servers
    • What is a web server?
    • Web server responsibilities
    • Request handling
    • Serving static files
    • Basic server configuration
  • URLs and Web Resources
    • URL structure
    • Scheme, host, port and path
    • Query parameters
    • Fragments
    • Resource identification

Expected skills: Understand the basic architecture of web applications, interpret HTTP requests and responses, and distinguish the roles of client, server, and database.

Week 2: Webpages Written in HTML and CSS

Topics covered

  • HTML Fundamentals
    • HTML document structure
    • DOCTYPE
    • html, head and body
    • Elements and attributes
    • Headings and paragraphs
    • Links and images
    • Lists and tables
  • Semantic HTML
    • Semantic vs non-semantic elements
    • header, nav, main, section, article and footer
    • Meaningful document structure
    • Accessibility basics
  • HTML Forms
    • Form elements
    • Text inputs
    • Radio buttons and checkboxes
    • Select and textarea
    • Buttons
    • Form submission
    • Basic form validation
  • CSS Fundamentals
    • CSS syntax
    • Selectors
    • Properties and values
    • Inline, internal and external CSS
    • Colors and backgrounds
    • Fonts and text styling
  • CSS Box Model
    • Content
    • Padding
    • Border
    • Margin
    • Width and height
    • Box sizing
  • CSS Layout
    • Normal document flow
    • Display properties
    • Positioning
    • Flexbox basics
    • Grid basics
    • Responsive design concepts
  • Browser Rendering
    • HTML parsing
    • DOM basics
    • CSS application
    • Browser inspection tools

Expected skills: Create structured, styled and responsive web pages and create forms using HTML and CSS.

Week 3: Presentation Layer — View

Topics covered

  • MVC Architecture
    • Model, View and Controller
    • Responsibilities of each component
    • Separation of concerns
    • Request-response flow in MVC
    • Advantages of MVC architecture
  • View Layer
    • Purpose of the view
    • Rendering HTML
    • Dynamic content
    • Displaying database data
    • Separating presentation from business logic
  • Templates
    • Server-side templates
    • Template variables
    • Template expressions
    • Conditional rendering
    • Loops in templates
    • Template inheritance
    • Reusable layouts
  • Introduction to Flask Templates
    • Flask application structure
    • Jinja2 templates
    • render_template()
    • Passing data from routes to templates
    • Static files
    • Template directories
  • Forms and Views
    • Displaying forms
    • Reading submitted data
    • GET and POST in forms
    • Displaying validation messages
    • Redirecting after submission
  • User Interface Design
    • Consistent page layouts
    • Navigation
    • Reusable components
    • Basic usability and accessibility

Expected skills: Understanding the responsibilities of the view layer in MVC architecture and rendering dynamic HTML pages through Flask and templates.

Week 4: Models — Introduction to Databases

Topics covered

  • Database Fundamentals
    • What is a database?
    • Database Management System (DBMS)
    • Relational databases
    • Tables, rows and columns
    • Primary keys and foreign keys
  • Data Modelling
    • Entities and attributes
    • Relationships
    • One-to-one relationships
    • One-to-many relationships
    • Many-to-many relationships
    • ER diagrams
  • Relational Model
    • Relations and tuples
    • Candidate keys
    • Primary and alternate keys
    • Referential integrity
    • Constraints
  • SQL Fundamentals
    • CREATE
    • INSERT
    • SELECT
    • UPDATE
    • DELETE
    • WHERE
    • ORDER BY
    • Aggregate functions
  • Database Design
    • Functional dependencies
    • Normalization
    • First Normal Form (1NF)
    • Second Normal Form (2NF)
    • Third Normal Form (3NF)
    • Reducing data redundancy
  • Database Models in Web Applications
    • Model layer in MVC
    • Mapping application data to database tables
    • CRUD operations
    • Connecting application logic to persistent data
  • MySQL and SQLite Basics
    • Database creation
    • Tables and constraints
    • Executing SQL queries
    • Database connections
    • Comparing relational database systems

Expected skills: Designing database schemas, defining relationships and constraints, writing SQL queries and understanding the model layer of MVC.

Week 5: Controllers — Business Logic

Topics covered

  • Controller Fundamentals
    • Role of a controller
    • Receiving user requests
    • Processing input
    • Calling models
    • Selecting views
    • Returning responses
  • Routing
    • URL routing
    • Route parameters
    • Query parameters
    • Mapping URLs to controller functions
    • Route methods
  • Flask Controllers
    • Flask routes
    • View functions
    • Request objects
    • Response objects
    • Redirects
    • URL generation
  • Business Logic
    • Application rules
    • Input processing
    • Data validation
    • CRUD workflows
    • Error handling
    • Separation of business logic and presentation
  • Form Processing
    • Reading form values
    • Validating inputs
    • Handling missing fields
    • Database operations from form submissions
    • Showing success and error messages
  • Database Integration
    • Connecting controllers with models
    • Creating records
    • Retrieving records
    • Updating records
    • Deleting records
    • Handling database errors
  • Application Flow
    • Request lifecycle
    • Controller-model interaction
    • Controller-view interaction
    • Redirect-after-POST pattern

Expected skills: Write Flask routes and controller functions, process user requests, and integrate with models to implement complete CRUD workflows.

Week 6: APIs and REST APIs

Topics covered

  • API Fundamentals
    • What is an API?
    • API as an interface
    • Client-server interaction
    • API consumers and providers
    • API endpoints
  • HTTP Methods
    • GET
    • POST
    • PUT
    • PATCH
    • DELETE
    • Idempotency
    • Safe methods
  • REST Architecture
    • REST principles
    • Resources
    • Resource identifiers
    • Stateless communication
    • Uniform interface
    • Client-server separation
  • REST API Design
    • Endpoint naming
    • Resource-based URLs
    • Request bodies
    • Query parameters
    • Pagination basics
    • Filtering and sorting
    • Consistent API responses
  • HTTP Status Codes
    • 2xx success
    • 3xx redirection
    • 4xx client errors
    • 5xx server errors
    • Common codes such as 200, 201, 400, 401, 403, 404 and 500
  • JSON
    • JSON syntax
    • Objects and arrays
    • Serialization
    • Deserialization
    • JSON request and response bodies
  • API Implementation
    • Building endpoints with Flask
    • Returning JSON responses
    • Handling API requests
    • Connecting APIs to database models
    • Testing APIs using command-line tools
  • API Testing
    • curl
    • Request headers
    • Request bodies
    • Response inspection
    • Testing different HTTP methods

Expected skills: Designing REST APIs, understanding HTTP methods and status codes, handling JSON data, and implementing API endpoints in Flask.

Week 7: Backend Systems

Topics covered

  • Backend Architecture
    • Backend responsibilities
    • Application server
    • Database server
    • Request processing
    • Backend components
    • Separation of layers
  • Web Application Backend
    • Flask application structure
    • Routing and controllers
    • Models and database integration
    • Configuration
    • Application initialization
  • Database Connectivity
    • Connecting Python applications to databases
    • Database drivers
    • Connection management
    • Executing queries
    • Transactions
    • Handling database errors
  • Server-Side Processing
    • Request parsing
    • Input validation
    • Business logic execution
    • Database interaction
    • Response generation
  • Application Configuration
    • Environment variables
    • Development and production settings
    • Configuration files
    • Managing secrets
    • Debug mode
  • Backend Error Handling
    • Exceptions
    • Error responses
    • Logging
    • Handling invalid requests
    • Database failure scenarios
  • Application Structure
    • Modular code
    • Reusable functions
    • Separating routes and database logic
    • Maintaining application code

Expected skills: Understanding backend architecture, developing Flask applications in a structured way, and creating database-integrated server-side workflows.

Week 8: Application Frontend

Topics covered

  • Frontend Fundamentals
    • Frontend responsibilities
    • Client-side rendering basics
    • Browser-server interaction
    • Frontend-backend communication
  • HTML Forms and User Interaction
    • User input
    • Form submission
    • Client-side validation
    • Handling user actions
    • Displaying feedback
  • Dynamic Web Pages
    • JavaScript fundamentals
    • DOM manipulation
    • Event handling
    • Updating page content
    • Interactive UI elements
  • Asynchronous Requests
    • AJAX concepts
    • Fetching data without full page reload
    • XMLHttpRequest basics
    • Fetch API concepts
    • Handling asynchronous responses
  • Frontend and API Integration
    • Sending HTTP requests
    • Receiving JSON responses
    • Updating the UI from API data
    • Handling request failures
    • Loading and error states
  • Frontend Architecture
    • Presentation and application logic
    • Reusable UI elements
    • Separating frontend and backend responsibilities
    • Managing static assets
  • User Experience
    • Navigation
    • Feedback messages
    • Form usability
    • Responsive layout basics
    • Accessibility considerations

Expected skills: Creating interactive frontend pages, handling user events through JavaScript and updating the UI by retrieving data from APIs.

Week 9: Application Security

Topics covered

  • Web Security Fundamentals
    • Security goals
    • Confidentiality, integrity and availability
    • Common web application threats
    • Attack surface
    • Secure development principles
  • Authentication
    • Authentication vs authorization
    • User identity
    • Login and logout
    • Password-based authentication
    • Sessions and cookies
  • Password Security
    • Password hashing
    • Salting
    • Secure password storage
    • Password verification
    • Why plain-text password storage is unsafe
  • Session Management
    • HTTP's stateless nature
    • Session identifiers
    • Session cookies
    • Session expiration
    • Secure session handling
  • SQL Injection
    • How SQL injection occurs
    • Unsafe query construction
    • Parameterized queries
    • Prepared statements
    • Input handling
    • Preventing injection attacks
  • Cross-Site Scripting (XSS)
    • Reflected XSS
    • Stored XSS
    • Injected scripts
    • Output encoding
    • Safe rendering
  • Cross-Site Request Forgery (CSRF)
    • CSRF attack concept
    • Forged requests
    • CSRF tokens
    • SameSite cookie concepts
    • Protection mechanisms
  • Secure HTTP Communication
    • HTTPS
    • TLS basics
    • Secure cookies
    • Sensitive information in transit
    • Security-related HTTP headers

Expected skills: Identifying common web security vulnerabilities, understanding authentication and session handling, and explaining methods of protecting applications from attacks such as SQL injection.

Week 10: Testing of Web Applications

Topics covered

  • Software Testing Fundamentals
    • Purpose of testing
    • Verification and validation
    • Manual and automated testing
    • Test cases
    • Expected vs actual results
  • Testing Levels
    • Unit testing
    • Integration testing
    • System testing
    • End-to-end testing
    • Regression testing
  • Web Application Testing
    • Testing routes
    • Testing form submissions
    • Testing API endpoints
    • Testing database interactions
    • Testing user workflows
  • Python Testing Tools
    • unittest
    • pytest basics
    • Assertions
    • Test functions
    • Test fixtures
    • Test organization
  • Flask Application Testing
    • Flask test client
    • Simulating HTTP requests
    • Testing responses
    • Testing status codes
    • Testing JSON output
    • Testing form behaviour
  • Test Data and Mocking
    • Test databases
    • Sample data
    • Mock objects
    • Isolating application components
    • Managing test environments
  • Debugging and Error Analysis
    • Reading error messages
    • Logging
    • Reproducing bugs
    • Identifying failure points
    • Fixing and retesting

Expected skills: Write test cases, execute automated tests, and identify bugs for web applications' routes, APIs, and user workflows.

Week 11: HTML Evolution and Beyond HTML

Topics covered

  • Evolution of HTML
    • Early HTML versions
    • HTML4
    • XHTML
    • HTML5
    • Modern HTML standards
  • HTML5 Features
    • Semantic elements
    • Audio and video
    • Canvas
    • SVG integration
    • Form enhancements
    • New input types
  • Web APIs
    • Browser-provided APIs
    • DOM APIs
    • Storage APIs
    • Geolocation API concepts
    • Browser capabilities
  • Beyond Traditional HTML
    • Progressive web application concepts
    • Client-side application architecture
    • Single-page application basics
    • Modern frontend frameworks
    • Web components overview
  • Responsive and Accessible Web Design
    • Responsive layouts
    • Media queries
    • Semantic structure
    • Accessible controls
    • Keyboard navigation
    • Accessibility basics
  • Modern Web Standards
    • Standards-based development
    • Browser compatibility
    • Progressive enhancement
    • Graceful degradation
    • Modern web platform concepts

Expected skills: Understanding the evolution of HTML and modern browser capabilities and explaining the basic principles of modern web development approaches.

Week 12: Application Deployment

Topics covered

  • Deployment Fundamentals
    • Development vs production environments
    • Deployment lifecycle
    • Application hosting
    • Server configuration
    • Deployment requirements
  • Web Server and Application Server
    • Web server responsibilities
    • Application server responsibilities
    • Reverse proxy
    • Request forwarding
    • Serving static files
  • Flask Deployment
    • Production configuration
    • WSGI concepts
    • Running Flask applications in production
    • Application server setup
    • Managing dependencies
  • Database Deployment
    • Production database configuration
    • Database connection settings
    • Schema creation and migration concepts
    • Backup and restore
    • Database access security
  • Environment and Configuration
    • Environment variables
    • Secret management
    • Configuration separation
    • Debug mode restrictions
    • Dependency management
  • Deployment Security
    • HTTPS configuration
    • Secure cookies
    • Restricting database access
    • Protecting credentials
    • Production security practices
  • Monitoring and Maintenance
    • Application logs
    • Error monitoring
    • Server resource usage
    • Troubleshooting
    • Updating deployed applications
  • Deployment Workflows
    • Manual deployment
    • Version control integration
    • Basic deployment automation
    • Application updates
    • Rollback concepts

Expected skills: Deploying Flask-based web applications to a production environment, managing configuration, and performing basic maintenance of the deployed application.

Quick revision map

Modern Application Development I — Theory (MAD-1) topic distribution

Week 1: Basic terminologies of Web

1 week

Introduction to Web Applications, Internet and Networking Basics, HTTP and HTTPS, Web Application Architecture, Web Servers, URLs and Web Resources

Week 2: Webpages written in HTML and CSS

1 week

HTML Fundamentals, Semantic HTML, HTML Forms, CSS Fundamentals, CSS Box Model, CSS Layout, Browser Rendering

Week 3: Presentation layer — View

1 week

MVC Architecture, View Layer, Templates, Introduction to Flask Templates, Forms and Views, User Interface Design

Week 4: Models — Introduction to databases

1 week

Database Fundamentals, Data Modelling, Relational Model, SQL Fundamentals, Database Design, Database Models in Web Applications, MySQL and SQLite Basics

Week 5: Controllers — Business logic

1 week

Controller Fundamentals, Routing, Flask Controllers, Business Logic, Form Processing, Database Integration, Application Flow

Week 6: APIs and REST APIs

1 week

API Fundamentals, HTTP Methods, REST Architecture, REST API Design, HTTP Status Codes, JSON, API Implementation, API Testing

Week 7: Backend Systems

1 week

Backend Architecture, Web Application Backend, Database Connectivity, Server-Side Processing, Application Configuration, Backend Error Handling, Application Structure

Week 8: Application Frontend

1 week

Frontend Fundamentals, HTML Forms and User Interaction, Dynamic Web Pages, Asynchronous Requests, Frontend and API Integration, Frontend Architecture, User Experience

Week 9: Application Security

1 week

Web Security Fundamentals, Authentication, Password Security, Session Management, SQL Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Secure HTTP Communication

Week 10: Testing of Web Applications

1 week

Software Testing Fundamentals, Testing Levels, Web Application Testing, Python Testing Tools, Flask Application Testing, Test Data and Mocking, Debugging and Error Analysis

Week 11: HTML Evolution and Beyond HTML

1 week

Evolution of HTML, HTML5 Features, Web APIs, Beyond Traditional HTML, Responsive and Accessible Web Design, Modern Web Standards

Week 12: Application Deployment

1 week

Deployment Fundamentals, Web Server and Application Server, Flask Deployment, Database Deployment, Environment and Configuration, Deployment Security, Monitoring and Maintenance, Deployment Workflows

For assignments, quizzes and exams, follow the current term's course portal and official assessment announcements.

Practise MVC architecture, HTTP/HTTPS, GET/POST, SQL, REST APIs, cookies and sessions, SQL injection, testing and deployment through conceptual, request-response and code-based questions.

IIT Madras official course page