Welcome to the Web Development Crash Course! This repository contains the syllabus, assignments, and resources for a 12-week journey into web development.
- Duration: 3 Months
- Frequency: 3 Classes per Week (2 Hours Each)
- Format: Practical, project-based learning
-
- Lecture 1: Fundamentals of Web Development
- How the web works
- Overview of HTML, CSS, and JavaScript
- Client-server architecture
- Assignment: Write a short paragraph explaining how a website is served from a server to a browser.
- Lecture 1: Fundamentals of Web Development
-
Lecture 2: Setting Up the Development Environment
- Installing VS Code and extensions
- Introduction to Git and GitHub
- Version control basics
- Assignment: Set up a GitHub repository and push an initial README file with a brief bio.
-
Lecture 3: Debugging and Troubleshooting Basics
- Inspecting elements and debugging with browser tools
- Common errors and their fixes
- Assignment: Identify and fix simple HTML/CSS bugs provided in a code snippet.
-
Lecture 4: HTML Syntax and Structure
- Tags, attributes, and indentation
- Headings, paragraphs, and lists
-
Lecture 5: Links, Images, and Multimedia
- Adding hyperlinks
- Embedding images and videos
-
Lecture 6: Forms and Input Elements
-
Input types and attributes
-
Creating simple forms
-
-
Lecture 7: Introduction to CSS
- CSS syntax and properties
- Inline, internal, and external CSS
- Assignment: Style the webpage created in Week 2 using basic CSS (colors, fonts, and spacing).
-
Lecture 8: Box Model and Layout
- Understanding the box model
- Margin, padding, and borders
- Assignment: Adjust the layout of a webpage using box model properties for neat spacing.
-
Lecture 9: Positioning and Display
- Static, relative, absolute, and fixed positioning
- Display properties (block, inline, flex)
- Assignment: Create a webpage layout using a mix of positioning and display properties.
-
Lecture 10: Flexbox Basics
- Setting up a Flexbox container
- Aligning and distributing items
- Assignment: Create a responsive navigation bar using Flexbox.
-
Lecture 11: Grid Layout Basics
- Grid container and grid items
- Grid rows, columns, and areas
- Assignment: Design a webpage with a two-column layout using CSS Grid.
-
Lecture 12: Introduction to Bootstrap
- Bootstrap grid system
- Using Bootstrap components
- Assignment: Create a responsive webpage using Bootstrap templates and grid system.
-
Lecture 13: Introduction to JavaScript
- Variables, data types, and operators
- Basic input/output
- Assignment: Write a script that asks for the user's name and greets them in an alert box.
-
Lecture 14: Conditional Statements and Loops
- If/else, switch cases
- For, while, and do-while loops
- Assignment: Create a program to print numbers 1-100 and label even/odd numbers.
-
Lecture 15: Functions and Arrays
- Declaring functions and using arrays
- Array manipulation methods
- Assignment: Write a function that returns the largest number in an array.
-
Lecture 16: Introduction to the DOM
- Selecting and manipulating elements
- Event listeners
- Assignment: Create a button that changes the background color of the webpage when clicked.
-
Lecture 17: Forms and Input Validation
- Accessing form elements via DOM
- Validating input fields
- Assignment: Build a login form that validates email format and password length.
-
Lecture 18: Building Interactive Webpages
- Dynamic content updates
- Best practices for DOM manipulation
- Assignment: Add interactive features (e.g., a to-do list) to an existing webpage.
-
Lecture 19: Introduction to React
- What is React?
- Setting up a React environment
- Understanding components
- Assignment: Create a React app with a single functional component displaying "Hello, World!".
-
Lecture 20: JSX and Props
- Writing JSX
- Passing and using props in components
- Assignment: Build a React component that takes a name prop and displays "Welcome, [name]!".
-
Lecture 21: State and Event Handling
- Using
useState - Handling events like clicks
- Assignment: Create a React component with a button that toggles text between "ON" and "OFF".
- Using
-
Lecture 22: Component Lifecycle and Hooks
- Lifecycle of components
- Using
useEffect - Assignment: Create a React component that fetches and displays data from an API using
useEffect.
-
Lecture 23: Conditional Rendering and Lists
- Rendering content conditionally
- Mapping arrays to components
- Assignment: Build a React component that displays a list of items with a button to filter out specific ones.
-
Lecture 24: Forms and Input Handling in React
- Controlled vs. uncontrolled components
- Handling form inputs
- Assignment: Create a React form that accepts and displays user input as it's typed.
-
Lecture 25: Advanced Git and GitHub
- Branching and merging
- Resolving merge conflicts
- Assignment: Create a new branch in a GitHub repository, make changes, and merge it back to the main branch.
-
Lecture 26: Hosting on GitHub Pages
- Setting up GitHub Pages
- Deploying a static website
- Assignment: Deploy your Week 4 project (Bootstrap-based webpage) to GitHub Pages and share the link.
-
Lecture 27: Deployment Using Netlify and Vercel
- Comparing deployment platforms
- Deploying React apps
- Assignment: Deploy a React app to Netlify or Vercel and verify its functionality.
-
Lecture 28: Introduction to Node.js
- Setting up Node.js
- Writing a simple server
- Assignment: Build a basic Node.js server that serves a "Hello, World!" message.
-
Lecture 29: Introduction to Express.js
- Setting up Express.js
- Creating routes and handling requests
- Assignment: Create an Express.js server with at least three routes (e.g.,
/,/about,/contact).
-
Lecture 30: Connecting to a Database
- Setting up a MongoDB database
- CRUD operations using MongoDB
- Assignment: Create an Express.js app that saves and retrieves data from MongoDB.
-
Lecture 31: RESTful APIs
- Understanding REST principles
- Creating a RESTful API with Express
- Assignment: Build a RESTful API to manage a simple "To-Do" list.
-
Lecture 32: Fetching Data from APIs
- Using
fetchoraxiosin React - Connecting frontend to backend
- Assignment: Create a React app that consumes the "To-Do" API and displays the tasks.
- Using
-
Lecture 33: Authentication Basics
- Understanding JWT
- Implementing login/logout functionality
- Assignment: Add authentication to the React-Express app with login and logout endpoints.
-
Lecture 34: Preparing for the Final Project
- Planning a full-stack application
- Setting up the project repository
- Assignment: Create a project proposal with a clear description, features, and tech stack.
-
Lecture 35: Building the Final Project (Part 1)
- Backend development
- Setting up routes and database
- Assignment: Implement the backend functionality for your project, including CRUD operations.
-
Lecture 36: Building the Final Project (Part 2)
- Frontend development
- Integrating frontend with backend
- Assignment: Complete and deploy your full-stack project. Share the live link and GitHub repository for review.
- VS Code
- GitHub
- HTML Documentation
- CSS Documentation
- JavaScript Documentation
- React Documentation
- Node.js Documentation
- MongoDB Documentation
This project is licensed under the MIT License. See the LICENSE file for details.