Al-Aqsa University Al-Aqsa University

Course Plan: Web Programming & Development 1

100% Practical Plan - Learn by Building

Learn by Doing - Every Week = A Project
13 Weeks 15+ Practical Projects 4 Modules 7 Technologies
HTML (Weeks 1-3) CSS (Weeks 4-7) JavaScript (Weeks 8-10) PHP + MySQL (Weeks 11-13)
1

HTML

Weeks 1-3: Structure, Forms, Semantic HTML5 & Multimedia
Week 1 HTML Basics - Build a CV Page
Learn HTML structure, tags, lists, links, images, and tables by building a complete CV page
Project: CV Page
  • 1 Create an index.html file and write the basic structure: <!DOCTYPE>, <html>, <head>, <body>
  • 2 Add your name as a heading <h1>, a description with <p>, and your photo with <img>
  • 3 Create a skills section as an unordered list <ul> and an experience section as an ordered list <ol>
  • 4 Add a <table> for educational qualifications (Year, University, Major)
  • 5 Add links <a> to your accounts (GitHub, LinkedIn) and connect sections with internal anchors
HTML Structure Headings & Paragraphs Lists Tables Links & Images
Week 2 HTML Forms & Validation - Build a Registration Form
Learn form elements, input types, validation, select, and textarea
Project: Registration Form
  • 1 Create a <form> with: name, email, password, confirm password, gender <radio>, country <select>
  • 2 Add a <textarea> for bio, <checkbox> for terms, and a <datalist> for city suggestions
  • 3 Apply HTML5 validation: required, type="email", minlength, pattern for phone numbers
  • 4 Use new HTML5 input types: date, number, range, color, url
  • 5 Group fields with <fieldset> and <legend>, add proper <label> elements for accessibility
Forms Input Types HTML5 Validation Select & Textarea Fieldset & Legend Labels
Week 3 Semantic HTML5 + Multimedia + Accessibility
Learn semantic elements, audio, video, and accessibility best practices by building a blog article page
Project: Blog Article Page
  • 1 Structure the page with semantic elements: <header>, <nav>, <main>, <article>, <aside>, <footer>
  • 2 Add a <video> element with controls and fallback text, and an <audio> player for a podcast section
  • 3 Use <figure> and <figcaption> for images, <blockquote> and <cite> for quotes
  • 4 Add accessibility: alt on all images, aria-label on nav, proper heading hierarchy (h1 > h2 > h3)
  • 5 Embed external content with <iframe> (YouTube video), add <time> for dates and <details>/<summary> for FAQ
Semantic HTML5 Video & Audio Figure & Figcaption Accessibility ARIA Attributes iframe
Module Project

Complete HTML-Only Portfolio Structure

  • Proper semantic structure throughout
  • Navigation with internal anchor links
  • About section with photo and bio
  • Skills table with qualifications
  • Contact form with full validation
  • Embedded video introduction
  • Accessible with proper ARIA labels
  • Blog section with article layout
2

CSS

Weeks 4-7: Styling, Layout, Animations & Responsive Design
Week 4 CSS Basics - Build a Styled Profile Page
Learn selectors, box model, colors, fonts, and backgrounds
Project: Styled Profile Page
  • 1 Link an external CSS file and explore selectors: element, class .name, ID #header, and combinators
  • 2 Style the profile card: border-radius, box-shadow, padding, margin - understand the Box Model
  • 3 Apply colors with hex, rgb(), hsl() and gradients with linear-gradient for backgrounds
  • 4 Import Google Fonts, set font-family, font-size, font-weight, line-height, and text-transform
  • 5 Add pseudo-classes :hover, :focus, :nth-child and pseudo-elements ::before, ::after for decorations
CSS Selectors Box Model Colors & Gradients Fonts & Typography Backgrounds Pseudo-classes
Week 5 CSS Layout - Build a Landing Page
Master Flexbox, Grid, and Positioning by building a professional landing page
Project: Landing Page
  • 1 Create a fixed Navbar with position: fixed containing a logo + horizontal links using display: flex
  • 2 Build a Hero Section with a large background image + centered content using flexbox alignment
  • 3 Create a Features section with CSS Grid: grid-template-columns: repeat(3, 1fr), each with icon + title + description
  • 4 Add a Testimonials section with flexbox + a pricing section with grid cards
  • 5 Create a Footer with multi-column layout using grid, practice position: relative/absolute for overlapping elements
Flexbox CSS Grid Positioning Background Images Display Property Z-index
Week 6 CSS Animations + Transitions + Variables
Learn animations, transitions, and CSS custom properties by building an animated portfolio section
Project: Animated Portfolio Section
  • 1 Define CSS variables: :root { --primary: #e94560; --bg: #1a1a2e; } and use them throughout the page
  • 2 Add transition on cards: smooth color, transform, and shadow changes on hover with transition: all 0.3s ease
  • 3 Create @keyframes animations: fadeIn, slideUp, pulse effects for page load and scroll entrance
  • 4 Build an image gallery with hover overlay effect using opacity, transform: scale(), and filter
  • 5 Add a loading spinner animation, animated skill bars, and a dark/light theme toggle using CSS variables
CSS Variables Transitions @keyframes Transform Filter Animation Timing
Week 7 Responsive Design + Bootstrap 5
Learn responsive design and Bootstrap 5 by building a restaurant website and completing your full portfolio
Project: Restaurant Website + Full Portfolio
  • 1 Build a page with @media queries: change layout at breakpoints (mobile, tablet, desktop)
  • 2 Install Bootstrap 5 and build a responsive Navbar with hamburger menu + Hero with Carousel component
  • 3 Create a Menu section with Bootstrap Cards + Grid System: col-lg-4 col-md-6 col-12
  • 4 Add a reservation Modal + table booking form with Bootstrap Forms + use Bootstrap utility classes
  • 5 Combine everything into a complete Portfolio: responsive, animated, with all HTML/CSS skills applied
Media Queries Responsive Design Bootstrap Grid Bootstrap Components Bootstrap Utilities Mobile First
Module Project

Complete Responsive Personal Portfolio Website

  • Home page with animated Hero Section
  • "About Me" section with photo and bio
  • Skills section with animated Progress Bars
  • Projects gallery with Cards + Grid
  • Complete contact form with styling
  • Fixed Navbar + Smooth Scroll
  • 100% responsive (mobile + tablet + desktop)
  • CSS animations + dark/light theme with variables
3

JavaScript

Weeks 8-10: From Basics to DOM Manipulation & APIs
Week 8 JS Basics - Build a Calculator + Quiz Game
Learn variables, types, conditions, loops, functions, arrays, and objects
Project: Calculator + Quiz Game
  • 1 Start with the Console: try let, const, arithmetic operations, typeof, strings, and template literals
  • 2 Write a function function calculate(a, op, b) using if/else or switch. Build the calculator UI and connect buttons
  • 3 Learn arrays and objects: create an array of question objects with question, options[], correct
  • 4 Use for, forEach, for...of loops to display quiz questions. Write arrow functions and use destructuring
  • 5 Add scoring logic, a timer for each question, and a results screen. Handle edge cases (division by zero, empty input)
Variables & Types Conditions Loops Functions Arrays Objects Arrow Functions
Week 9 JS DOM + Events - Build a To-Do List + Color Picker
Learn DOM manipulation, events, event delegation, and classList
Project: To-Do List + Color Picker
  • 1 Create an input field + "Add" button and use querySelector and addEventListener('click')
  • 2 On click: createElement('li'), set the text with textContent, and appendChild to the list
  • 3 Add a delete button for each task + use Event Delegation on the parent list. Toggle completed with classList.toggle('completed')
  • 4 Add task editing on double-click + filtering (All / Completed / Incomplete)
  • 5 Build a Color Picker: sliders for RGB values, live preview, hex code display, and a palette of saved colors using classList.add
querySelector createElement addEventListener classList Event Delegation DOM CRUD
Week 10 Fetch API + localStorage - Build a Weather App + Budget Tracker
Learn Fetch API, async/await, JSON, and localStorage
Project: Weather App + Budget Tracker
  • 1 Register on OpenWeatherMap, get an API Key, and test the API with fetch() in the Console
  • 2 Write async function getWeather(city) using await fetch() and response.json(). Handle errors with try/catch
  • 3 Display weather data: temperature, humidity, wind, weather icon. Use map and filter for a 5-day forecast
  • 4 Save the last searched city in localStorage.setItem() and load it on page open with getItem()
  • 5 Build a Budget Tracker: add income/expenses, calculate balance, categorize, save all data in localStorage as JSON
Fetch API async/await Promises JSON try/catch localStorage map & filter
Module Project

Personal Budget Tracker App

  • Add income and expenses
  • Automatic balance calculation
  • Categorize expenses (food, transport...)
  • Filter by category and date
  • Save data in localStorage
  • Simple chart using CSS
  • Delete and edit transactions
  • Responsive and beautiful design
4

PHP + MySQL

Weeks 11-13: Server-Side Programming & Databases
Week 11 PHP Basics + Forms + Sessions + OOP
Learn PHP fundamentals, form handling, sessions, and OOP by building profile cards and a contact form
Project: Profile Cards + Contact Form
  • 1 Install XAMPP and create your first index.php file in htdocs. Use echo, variables, arrays, and foreach
  • 2 Create an associative array of people and use foreach + if/else to display styled profile cards dynamically
  • 3 Build a contact form: receive data with $_POST, sanitize with htmlspecialchars, validate with filter_var
  • 4 Create a simple login page with $_SESSION: start session, store user data, protect pages, logout
  • 5 Introduce OOP: create class User and class Message with __construct, properties, and methods
PHP Basics Variables & Arrays $_POST / $_GET Validation Sessions OOP
Week 12 MySQL & SQL - Build an E-Store Database
Learn SQL, CRUD operations, JOINs, GROUP BY, and database design
Project: E-Store Database + SQL Queries
  • 1 Open phpMyAdmin and create a database store with tables: users, products, categories, orders
  • 2 Define data types: INT AUTO_INCREMENT, VARCHAR, DECIMAL, DATE + Primary Keys
  • 3 Add Foreign Keys (product linked to category, order linked to user) and INSERT sample data
  • 4 Write queries: top 5 expensive products ORDER BY ... LIMIT, product count per category GROUP BY
  • 5 Use JOIN to display orders with user name and product name, try LEFT JOIN for empty categories
CREATE TABLE Data Types Primary / Foreign Keys CRUD Operations JOINs GROUP BY / ORDER BY
Week 13 PHP + MySQL CRUD + Auth - Build a Student Management System
Learn connecting PHP with MySQL using PDO, prepared statements, CRUD, authentication, and pagination
Project: Student Management System
  • 1 Connect to the database with new PDO() and display a student list in an HTML table
  • 2 Create an add student page: form that saves with INSERT INTO using Prepared Statements prepare() + execute()
  • 3 Create an edit page: fetch student data with SELECT WHERE id = ? and update with UPDATE
  • 4 Add delete with confirmation + search by name WHERE name LIKE ? + Pagination with LIMIT/OFFSET
  • 5 Add a login system: register with password_hash(), sign in with password_verify(), protect pages with $_SESSION
PDO Prepared Statements CRUD with PHP Search & Pagination Login System SQL Injection Prevention
Capstone Project

Complete Student Management System

  • User system (register/login/logout)
  • Dashboard with statistics
  • Full CRUD for students
  • Search by name and filter by major
  • Pagination for large datasets
  • Secure with prepared statements
  • Password hashing with bcrypt
  • Responsive design with Bootstrap

Projects Summary

Module 1
3
Projects

HTML

CV Page, Registration Form, Blog Article
Module 2
5
Projects

CSS + Bootstrap

Profile, Landing, Portfolio, Restaurant, Full Portfolio
Module 3
5
Projects

JavaScript

Calculator, Quiz, Todo, Color Picker, Weather, Budget
Module 4
4
Projects

PHP + MySQL

Profile Cards, Contact Form, E-Store DB, Student System

Required Tools

VS Code
Code Editor - From Week 1
Chrome DevTools
Debugging - From Week 1
Git + GitHub
Project Storage - From Week 1
XAMPP / Laragon
PHP + MySQL - From Week 11
Postman
API Testing - From Week 10

Recommended Learning Resources

Arabic Resources

  • Elzero Web School - HTML, CSS, JS
  • TheNewBaghdad - PHP, MySQL
  • Abdelrahman Gamal - JavaScript
  • Codezilla - Web Development

English Resources

  • freeCodeCamp.org - Full Frontend (Free)
  • MDN Web Docs - HTML, CSS, JS Reference
  • W3Schools.com - Quick Reference
  • PHP.net - Official PHP Docs
  • The Odin Project - Full Stack (Free)

Tips for Success

  1. Type the code yourself - Don't copy and paste, write every line yourself even if you make mistakes
  2. Break the project into small pieces - Don't try to do everything at once
  3. When stuck, search - Google the error in English and check Stack Overflow
  4. Upload your projects to GitHub - Every project = a new repository
  5. Don't compare yourself to others - Focus on your own progress
  6. Review your old code - After a month, go back to your first project and improve it
  7. Do more than required - Add an extra feature to each project on your own