Course Content
Module 1: Web Development Fundamentals
Learning Objectives By the end of this module, you will: - Understand what web development is and why it matters - Learn how the internet works behind the scenes - Set up your development environment like a pro - Build your first website from scratch
0/4
Module 2: HTML Mastery
Learning Objectives By the end of this module, you will: - Master HTML structure and syntax - Create semantic, accessible web pages - Build forms that collect user input - Understand HTML best practices and standards
0/4
Web Development For Beginners

Build a responsive personal portfolio to showcase your work.

Goals

  • Semantic HTML structure

  • Responsive layout using CSS Grid or Flexbox

  • Accessible navigation and contact form

Starter Files
Create index.html and styles.css

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>My Portfolio</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <header>
      <h1>Jane Developer</h1>
      <nav aria-label="Primary">
        <a href="#about">About</a>
        <a href="#projects">Projects</a>
        <a href="#contact">Contact</a>
      </nav>
    </header>

    <main id="content">
      <section id="about">
        <h2>About Me</h2>
        <p>Developer focused on building accessible, performant web apps.</p>
      </section>

      <section id="projects">
        <h2>Projects</h2>
        <article>
          <h3>Sample App</h3>
          <p>Short description of a project with a link.</p>
          <a href="#">View</a>
        </article>
      </section>

      <section id="contact">
        <h2>Contact</h2>
        <form action="#" method="post">
          <label>Name <input name="name" required /></label>
          <label>Email <input type="email" name="email" required /></label>
          <label>Message <textarea name="message" rows="4" required></textarea></label>
          <button type="submit">Send</button>
        </form>
      </section>
    </main>

    <footer>
      <small>© <span id="year"></span> Jane Developer</small>
      <script>
        document.getElementById('year').textContent = new Date().getFullYear()
      </script>
    </footer>
  </body>
</html>
* { box-sizing: border-box }
body { margin: 0; font-family: system-ui, Arial, sans-serif; line-height: 1.6 }
header { display: flex; justify-content: space-between; align-items: center; padding: 1rem; border-bottom: 1px solid #eee }
nav a { margin: 0 .5rem; text-decoration: none; color: #0a66c2 }
main { max-width: 960px; margin: 0 auto; padding: 1rem }
#projects article { padding: 1rem; border: 1px solid #eee; border-radius: .5rem; margin-bottom: 1rem }
form { display: grid; gap: .75rem; max-width: 480px }
input, textarea, button { font: inherit; padding: .5rem }
button { background: #0a66c2; color: white; border: none; border-radius: .25rem; cursor: pointer }
button:hover { background: #084f96 }
@media (max-width: 600px) { header { flex-direction: column; gap: .5rem } }

Steps

  • Fill in your bio and add at least three projects

  • Add alt text to all images

  • Deploy to Netlify or Vercel

Acceptance Criteria

  • Lighthouse performance and accessibility score 90 or higher

  • Valid HTML with no major validator errors

  • Fully responsive on mobile and desktop

💬