Web Application Programming
ENCT 302
Lecture : 3 Year : III
Tutorial : 1 Part : I
Practical : 3
Course Objectives: Understand and utilize web technologies to create responsive and interactive web applications. Implement modern front-end frameworks and tools for connecting web front-ends to back-end APIs and databases, as well as exploring and evaluating current trends and future prospects in web development.
- Introduction (6 Hours)
- Overview of Web Applications & Evolution of Web Architecture
- Client-Server Architecture, HTTP, HTTPS, URLs, DNS, Web Browsers
- HTML Basics: Syntax, Tags, Attributes, Forms & Inputs, Tables, Lists, Multimedia, Semantic HTML5 Elements
- CSS Basics: Selectors, Properties, Values, Box Model
- CSS framework: Bootstrap
- JavaScript and Client-Side Programming (12 Hours)
- JavaScript Essentials
- Data Types, Variables, Control Structures, Functions
- DOM Manipulation, Events, and Form Validation
- Local Storage & Session Storage
- GUI Interactions
- Javascript library: jQuery
- Modern JavaScript (ES6+)
- Arrow Functions, Destructuring, Spread/Rest Operators
- Callbacks, Promises, Async/Await
- Modules and Imports
- Client-Side Applications
- Client-side Web application development using React JS library
- Traditional Multi-Page Apps vs Single-Page Apps (SPAs)
- Component-Based UI & Props
- State Management and Data Flow
- Client-Side Routing & Navigation without Reloads
- Fetch API: Fetching, Displaying Data, Handling Errors & Loading States
- Comparison of modern javascript libraries: React, Angular , Vue
- JavaScript Essentials
- Server-Side Web Programming (9 Hours)
- introduction to MVC architecture in web development
- Role of Backend in Web Applications
- Backend Web framework: Django
- Handling Requests & Responses
- Form Data Handling & Sessions
- Routing, Middleware, Templating Concepts
- Overview and comparison of backend Frameworks: Django, Flask, FastAPI, dot NET MVC framework, Ruby on Rails, Java Spring Boot, Node.js
- Database Integration: Relational vs NoSQL, CRUD Operations, ORM Concept
- Authentication & Authorization: Cookies, Sessions, JWT
- Middleware for Logging, Error Handling, and Security
- Web Services & APIs (7 Hours)
- API Basics: Role in Web Applications
- REST Principles and Design, RESTful APIs
- JSON vs XML Data Exchange
- Data Validation & Serialization
- Microservices
- Web Application Security (6 Hours)
- Common Vulnerabilities: XSS, SQL Injection, CSRF
- Security Best Practices: Input Validation, Sanitization, HTTPS, Secure Cookies, Env Variables
- Authentication Practices & Token Handling
- Security in Full-Stack Apps: CORS, Safe Sessions
- Web Application Deployment and Modern Trends (5 Hours)
- Full-stack development
- Testing and QA
- DevOps, Continuous Integration (CI) and Continuous Delivery (CD)
- Progressive Web Apps (PWAs), responsive design and usability
Tutorial (15 Hours)
- Introduction (2 hrs)
- Walkthrough of client-server request flow (DNS → HTTP/HTTPS → Browser).
- Guided coding: HTML page with semantic tags, styled with CSS grid/flexbox.
- JavaScript & Client-Side Programming (4 hrs)
- Hands-on exercises with DOM manipulation, event handling.
- Form validation & local storage demo.
- Guided task: Small SPA with component-based UI and fetch API integration.
- Server-Side Web Programming (3 hrs)
- Discuss request/response cycle with server framework.
- Guided coding: Simple CRUD using Django/Flask (e.g., library system).
- Session handling and authentication example.
- Web Services & APIs (2 hrs)
- REST principles with examples.
- Hands-on exercise: Build a simple REST API endpoint and test with fetch/Postman.
- Web Application Security (2 hrs)
- Demonstration of XSS & SQL Injection vulnerabilities.
- Guided exercise: Secure login form with input validation and session/token handling.
- Trends in Web Application Development (2 hrs)
- Discussion on PWAs, serverless, microservices.
- Case study/tutorial: Compare a traditional app vs PWA features.
Laboratory Works
- Build a responsive personal portfolio page using semantic HTML5, CSS grid/flexbox, and media queries.
- Create a dynamic to-do list app with DOM events, LocalStorage, and JavaScript event handling (using jQuery)
- Develop a CRUD application (e.g., Library System) using a server-side framework (Django/Flask/FastAPI).
- Create a frontend in React that fetches data from your backend API and displays it dynamically.
- Extend the CRUD app with user authentication (login/logout), form validation, and secure token/session handling.
- Develop a comprehensive project that encompasses the complete process of front-end and back-end web application development and deployment. The project should be carried out over at least six to seven lab sessions, covering the following stages: project proposal, front-end UI/UX design, back-end and database design, API design and integration, testing and deployment, and culminating in a final presentation and demonstration.
Textbook
- Flávio Copes, The Modern JavaScript Handbook
- Robin Nixon, Learning Web Development with HTML, CSS, JavaScript, and PHP
- William S. Vincent, Django for Beginners: Build websites with Python and Django (for server-side programming)
- Leonard Richardson & Mike Amundsen, RESTful Web APIs (for web services & APIs)
- Andrew Hoffman, Web Application Security: Exploitation and Countermeasures for Modern Web Applications (for web application security)
Reference Books
- Marijn Haverbeke, Eloquent JavaScript
- MDN Web Docs (Mozilla) – authoritative reference for HTML, CSS, JS, APIs
- W3Schools – supplementary practice
- Django Documentation: https://docs.djangoproject.com/en/5.2/
- FastAPI documentation: https://fastapi.tiangolo.com/tutorial/
- React Documentation: https://react.dev/learn
- Js tutorial: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
Final Exam
The question will cover all the chapters of the syllabus. The evaluation scheme will be as indicated in the table below:
|
Unit |
Hour |
Marks Distribution |
|
1 |
6 |
8 |
|
2 |
12 |
16 |
|
3 |
9 |
12 |
|
4 |
7 |
9 |
|
5 |
6 |
8 |
|
6 |
5 |
7 |
|
45 Hour |
60 Marks |
- There may be minor deviation in marks distribution