Web Development Crash Course Syllabus
Welcome to the Web Development Crash Course! This repository contains the syllabus, assignments, and resources for a 12-week journey into web development.
Course Overview
- Duration: 3 Months
- Frequency: 3 Classes per Week (2 Hours Each)
- Format: Practical, project-based learning
Weekly Topics and Assignments
Week 1: Introduction to 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.
Week 2: HTML Basics
- 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
Week 3: CSS Basics
- 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.
Week 4: Advanced CSS Techniques
- 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.
Week 5: JavaScript Basics
- 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.
Week 6: DOM Manipulation
- 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.
Week 7: React Basics
- 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”.
Week 8: React Advanced Concepts
- 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.
Week 9: Version Control and Deployment
- 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.
Week 10: Backend Basics
- 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.
Week 11: Backend and Frontend Integration
- 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
fetch
or axios
in React
- Connecting frontend to backend
- Assignment: Create a React app that consumes the “To-Do” API and displays the tasks.
- Lecture 33: Authentication Basics
- Understanding JWT
- Implementing login/logout functionality
- Assignment: Add authentication to the React-Express app with login and logout endpoints.
Week 12: Final Project and Course Wrap-Up
- 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.
Resources
License
This project is licensed under the MIT License. See the LICENSE file for details.