Degree Level Lab

App Dev LAB

This course is designed to equip students with the essential skills required for web application development roles. By the end of the course, students will be proficient in both frontend and backend technologies, understand version control best practices, and be capable of building real-time web applications. The curriculum focuses on hands-on learning, industry-relevant tools, and best coding practices to make students job-ready.

Course ID: BSCS4010

Course Credits: 4

Course Type: Elective

Pre-requisites: None

What you’ll learn

Build full-stack web applications using Node.js, TypeScript, Express, and React.
Write efficient code and solve problems using key Data Structures & Algorithms.
Manage backend logic, REST APIs, and connect to PostgreSQL databases.
Implement secure user authentication with JWT.
Use modern developer tools like Git, npm, and browser DevTools effectively.

Course structure & Assessments

Master full-stack web development by building projects using JavaScript, TypeScript, Node.js, Express, PostgreSQL, and React. Develop strong problem-solving skills with hands-on practice in data structures and algorithms. Learn to structure real-world applications, handle APIs, manage databases, and implement secure user authentication. Get comfortable with modern development tools like Git, GitHub, npm, and browser DevTools to streamline your workflow. For details of standard course structure and assessments, visit Academics page.

WEEK 1 Course Overview & Practice DSA Overview of Course Setting Expectations & Goals Efficiency & Complexity Analysis Data Structures: Arrays & Strings, Hash Tables & Sets, Linked Lists, Stacks & Queues, Heap, Trees & Graphs, Union-Find data structures. Algorithm Design Techniques:Recursion & Backtracking, Divide and Conquer, Greedy Algorithms, Dynamic Programming Problem-Solving
WEEK 2 JavaScript Essentials for Web Development The role of JavaScript in modern web apps ES6+ Features: let/const, arrow functions, template literals, destructuring Functions, Arrays, Objects Asynchronous JS: Callbacks, Promises, async/await Hands-on: Interactive JS challenges and code snippets
WEEK 3 Developer Tools & Workflows How the web works: Client-Server, HTTP, APIs Introduction to Git and GitHub/GitLab Version Control: init, add, commit, push, pull, branching npm, package.json Hands-on: GitHub setup and npm usage in a mini project
WEEK 4 Introduction to Backend Development with Node.js & TypeScript (Part 1) What is Node.js? Event-driven architecture & single-threaded nature Node.js in the web development ecosystem Setting Up a TypeScript Project with Node.js tsconfig.json basics Compiling TypeScript and running with ts-node Modules, imports/exports (ES6-style) Writing a basic HTTP server in TypeScript Hands-on: simple route handling
WEEK 5 Building REST APIs with Express.js & TypeScript (Part 2) Introduction to Express.js with TypeScript Defining routes, handling requests/responses Middleware concepts and implementation Structuring an Express app in TypeScript Error handling & basic input validation Hands-on: Building a small CRUD API (e.g., Task Manager or Notes API)
WEEK 6 SQL & PostgreSQL What is SQL? Relational DB concepts: Tables, Keys Learning to write basic queries in SQL Joins in SQL Data Filtering using SQL Pagination in SQL
WEEK 7 Integrating Express.js with PostgreSQL Introduction to ORM (TypeORM or Prisma) Entity design & schema modeling Connecting Express to PostgreSQL Hands-on: Full CRUD API with DB persistence
WEEK 8 Authentication & Application Security Introduction to Authentication Hashing passwords with bcrypt JWT-based authentication Route protection and user sessions Hands-on: Secure login & register flow
WEEK 9 React.js Fundamentals - Components & JSX What is React? Understanding Virtual DOM Setting up a React Project with Vite JSX & Component-Based Architecture Functional Components & Props Hands-on: Building Simple UI Components
WEEK 10 React.js - State Management & Event Handling Introduction to State (useState Hook) Handling User Input & Events Conditional Rendering Lists & Keys in React useEffect Hook Hands-on: Building Interactive Components
WEEK 11 React.js - Routing & API Integration Introduction to React Router Implementing Navigation & Dynamic Routing Making API Calls using Fetch / Axios Handling API Responses & Errors (+ CORS) Hands-on: Fetching & Displaying Data in a React App
WEEK 12 Full-Stack Project - Planning & Development Structuring a Full-Stack Application Combining React.js, Express.js, and Databases Implementing CRUD Operations End-to-End Hands-on: Developing a Full-Stack Feature Deployment? - which platform?
+ Show all weeks
support@study.iitm.ac.in
7850999966
IITM BS Degree Office, 3rd Floor,
ICSR Building, IIT Madras,
Chennai - 600036

Please use only the above methods for program queries. Response time: 3 working days. During peak periods, Google Meet links will be shared. Call wait times may be longer.