MAD-1 Theory: Modern Application Development 1 (Theory)
Modern Application Development 1 (Theory): week-wise syllabus, notes, short notes, and available revision material.
Modern Application Development 1 (Theory)
DiplomaComplete 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
DOCTYPEhtml,headandbody- Elements and attributes
- Headings and paragraphs
- Links and images
- Lists and tables
Semantic HTML
- Semantic vs non-semantic elements
header,nav,main,section,articleandfooter- 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
CREATEINSERTSELECTUPDATEDELETEWHEREORDER 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
unittestpytestbasics- 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 weekIntroduction 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 weekHTML Fundamentals, Semantic HTML, HTML Forms, CSS Fundamentals, CSS Box Model, CSS Layout, Browser Rendering
Week 3: Presentation layer — View
1 weekMVC Architecture, View Layer, Templates, Introduction to Flask Templates, Forms and Views, User Interface Design
Week 4: Models — Introduction to databases
1 weekDatabase Fundamentals, Data Modelling, Relational Model, SQL Fundamentals, Database Design, Database Models in Web Applications, MySQL and SQLite Basics
Week 5: Controllers — Business logic
1 weekController Fundamentals, Routing, Flask Controllers, Business Logic, Form Processing, Database Integration, Application Flow
Week 6: APIs and REST APIs
1 weekAPI Fundamentals, HTTP Methods, REST Architecture, REST API Design, HTTP Status Codes, JSON, API Implementation, API Testing
Week 7: Backend Systems
1 weekBackend Architecture, Web Application Backend, Database Connectivity, Server-Side Processing, Application Configuration, Backend Error Handling, Application Structure
Week 8: Application Frontend
1 weekFrontend Fundamentals, HTML Forms and User Interaction, Dynamic Web Pages, Asynchronous Requests, Frontend and API Integration, Frontend Architecture, User Experience
Week 9: Application Security
1 weekWeb 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 weekSoftware 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 weekEvolution of HTML, HTML5 Features, Web APIs, Beyond Traditional HTML, Responsive and Accessible Web Design, Modern Web Standards
Week 12: Application Deployment
1 weekDeployment 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