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
4 Months 16 Weeks 16+ Practical Projects 4 Major Projects
HTML/CSS/Bootstrap JavaScript PHP + MySQL Laravel
1

Frontend Fundamentals

HTML5 + CSS3 + Bootstrap 5 - Learn by Building
Week 1 Build a Resume Page
Learn HTML by building a complete CV page from scratch
Project: Resume Page (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 structure the page with semantic elements: <header>, <main>, <section>, <footer>
HTML Structure Headings & Paragraphs Lists Tables Links & Images Semantic HTML5
Week 2 Build a Registration Form + Style with CSS
Learn forms and basic CSS by building a beautiful sign-up page
Project: Sign Up Page
  • 1 Create a <form> with: name, email, password, confirm password, gender <radio>, country <select>
  • 2 Add HTML5 validation: required, type="email", minlength, pattern
  • 3 Link an external CSS file and choose fonts and colors for the page
  • 4 Style the form: rounded borders, shadows, background, spacing with padding and margin
  • 5 Style buttons with colors and hover effects using :hover and :focus
Forms Input Types HTML5 Validation CSS Selectors Colors & Fonts Box Model
Week 3 Build a Product Landing Page
Learn Flexbox, Grid, and Positioning by building a professional Landing Page
Project: Mobile App Landing Page
  • 1 Create a fixed Navbar with position: fixed containing a logo + horizontal links using flexbox
  • 2 Create a Hero Section with a large background image + centered heading + CTA button
  • 3 Create a Features section with CSS Grid: 3 columns, each with an icon + title + description
  • 4 Add a Testimonials section with flexbox + a contact section
  • 5 Create a Footer with links + copyright using grid or flexbox
Flexbox CSS Grid Positioning Background Images Display Property
Week 4 Build a Responsive Restaurant Website with Bootstrap
Learn Responsive Design and Bootstrap by building a full website that works on all screens
Project: Responsive Restaurant Website
  • 1 Build a page without Bootstrap first and try @media queries to change layout based on screen size
  • 2 Install Bootstrap and rebuild the page: responsive Navbar with hamburger menu + Hero with Carousel
  • 3 Create a Menu section with Cards + Grid System: col-lg-4 col-md-6 col-12
  • 4 Add a reservation Modal + table booking form with Bootstrap Forms
  • 5 Add CSS animations: transition on buttons and @keyframes for element entrance effects
Media Queries Responsive Design Bootstrap Grid Bootstrap Components Transitions Animations
Monthly Project

Complete Responsive Personal Portfolio Website

  • Home page with Hero Section
  • "About Me" section with photo and bio
  • Skills section with Progress Bars
  • Projects gallery with Cards + Grid
  • Complete contact form
  • Fixed Navbar + Smooth Scroll
  • 100% responsive (mobile + tablet + desktop)
  • CSS Animation effects
2

JavaScript

From Zero to DOM Manipulation & APIs - Project-Based
Week 5 Build an Interactive Calculator
Learn JS fundamentals by building a calculator that works on click
Project: Calculator
  • 1 Start with the Console: try let, const, arithmetic operations, typeof
  • 2 Write a function function calculate(a, op, b) that uses if/else or switch to execute the operation
  • 3 Design the calculator interface with HTML + CSS (number buttons + operation buttons + display screen)
  • 4 Connect buttons with JS: clicking a number shows it on screen, clicking = calculates the result
  • 5 Add a C button to clear, handle division by zero, and support decimal numbers
Variables Data Types Operators if/else & switch Functions Events Basics
Week 6 Build an Interactive Quiz Game
Learn arrays, objects, and loops by building a quiz game
Project: Quiz Game
  • 1 Create an array of Objects, each containing: question, options[], correct
  • 2 Use forEach or for...of to display questions one by one
  • 3 Write an Arrow Function that checks the answer and calculates the score
  • 4 Use Destructuring: const { question, options } = questions[i]
  • 5 Add a Timer for each question + final results screen with Template Literals
Arrays Objects Loops Arrow Functions Destructuring Template Literals
Week 7 Build a To-Do List App
Learn DOM Manipulation and events by building a complete To-Do List
Project: To-Do List
  • 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 instead of each button
  • 4 Add a "completed" feature by clicking on a task: classList.toggle('completed')
  • 5 Add task editing on double-click + filtering (All / Completed / Incomplete)
querySelector createElement addEventListener classList Event Delegation DOM CRUD
Week 8 Build a Weather App with API
Learn Fetch API, async/await, and localStorage by building a Weather App
Project: Weather App
  • 1 Register on OpenWeatherMap and get an API Key, test the API with fetch() in the Console
  • 2 Write a function async function getWeather(city) using await fetch() and response.json()
  • 3 Use try/catch to handle errors (city not found, no internet)
  • 4 Display data with a nice design: temperature, humidity, wind, weather icon. Use map and filter to show a 5-day forecast
  • 5 Save the last searched city in localStorage and display it automatically when the app opens
Fetch API async/await Promises JSON try/catch localStorage map & filter
Monthly 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
3

Backend - PHP + MySQL

Server-Side Programming & Databases - Project-Based
Week 9 Build a Dynamic Profile Cards Website
Learn PHP basics by building pages that change based on data
Project: Profile Card Generator
  • 1 Install XAMPP and create your first index.php file in htdocs and display "Hello" with echo
  • 2 Create an Associative array with people's data and use foreach to display a card for each person
  • 3 Use if/else to change card color based on role (developer = blue, designer = green)
  • 4 Create a function function renderCard($person) that takes data and returns the card's HTML
  • 5 Display the number of people and current date with date() and try string functions: strtoupper, strlen
PHP Basics Variables Arrays Loops Functions String Functions
Week 10 Build a Contact & Registration System
Learn forms, sessions, and OOP by building a real contact system
Project: Contact Messages System + Simple Registration
  • 1 Create a contact form and receive data with $_POST, sanitize with htmlspecialchars and trim
  • 2 Add full validation: name required, valid email with filter_var, message over 10 characters
  • 3 Save messages in a JSON file using file_put_contents and json_encode
  • 4 Create a simple registration + login page with $_SESSION (without a database)
  • 5 Create class User and class Message with OOP including __construct and methods
$_POST / $_GET Validation Sessions File Handling OOP Security Basics
Week 11 Build an E-Commerce Database
Learn SQL by designing and building a real database and querying it
Project: E-Store Database
  • 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 (each product linked to a category, each order linked to a 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, and try LEFT JOIN for empty categories
CREATE TABLE Data Types Primary / Foreign Keys CRUD Operations JOINs GROUP BY / ORDER BY
Week 12 Build a Complete Student Management System
Learn connecting PHP with MySQL by building a real CRUD system
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, sign in, protect pages with $_SESSION
PDO Prepared Statements CRUD with PHP Search & Pagination Login System SQL Injection Prevention
Monthly Project

Book Library Management System

  • Login and permissions (Admin / User)
  • Full CRUD for books with cover image upload
  • Categorize books by genre
  • Advanced search and filtering
  • Pagination
  • Book borrowing system
  • Simple statistics dashboard
  • Responsive design with Bootstrap
4

Laravel Framework

Building Professional Applications - Project-Based
Week 13 Build a Multi-Page Website with Laravel
Learn Laravel basics by building a company website with Routing and Blade
Project: Company Website
  • 1 Install Composer then Laravel: composer create-project laravel/laravel company and explore the directory structure
  • 2 Add Routes in web.php: Home, About, Services, Contact. Create a PagesController
  • 3 Create a base Layout with Blade: @extends('layout'), @section, @yield with shared Navbar and Footer
  • 4 Pass data from Controller: return view('services', compact('services')) and display with @foreach
  • 5 Add @include('partials.card') for shared components + use @if and {{ }} for dynamic display
Laravel Setup MVC Pattern Routing Controllers Blade Templates Layouts
Week 14 Build a Product CRUD System with Eloquent
Learn Migrations and Eloquent ORM by building a product management system
Project: Product Manager
  • 1 Configure .env and create a Migration: php artisan make:migration create_products_table, define columns, and migrate
  • 2 Create a Model: php artisan make:model Product, define $fillable, then create a Seeder for sample data
  • 3 Display products: Product::orderBy('created_at','desc')->paginate(10) in a table with pagination
  • 4 Add creation: form with @csrf + Product::create($request->validated())
  • 5 Add edit find + update and delete delete + Flash Messages for confirmation
Migrations Eloquent ORM CRUD Operations Seeders Pagination CSRF Protection
Week 15 Build a Blog with Authentication
Learn relationships, validation, and authentication by building a complete blog
Project: Complete Blog System
  • 1 Install Breeze: composer require laravel/breeze and php artisan breeze:install - ready-made register + login + logout
  • 2 Create tables: posts and categories with relationships: Post belongsTo User and belongsTo Category
  • 3 Create Resource Controller + Validation: 'title' => 'required|min:5', 'body' => 'required' and display @error
  • 4 Add image upload: $request->file('image')->store('posts', 'public') and display the image
  • 5 Protect routes with middleware('auth') - users can only view and edit their own posts
Laravel Breeze Authentication Relationships Validation File Upload Middleware
Week 16 Final Capstone Project
Combine everything you learned into one large professional project
Project: Task Manager
  • 1 Plan the project: sketch tables and relationships on paper, create Migrations for: users, tasks, categories, task_category
  • 2 Create Models with relationships: Task belongsTo User, Task belongsToMany Category + Auth with Breeze
  • 3 Build full CRUD for tasks with Validation + file attachments + task statuses (pending/in_progress/completed)
  • 4 Build a Dashboard showing: statistics, today's tasks, filter by status/category, search by name
  • 5 Style everything with Bootstrap 5 + test on mobile + review code + prepare for submission
Full Stack Project Planning Many-to-Many Dashboard Filtering File Upload
Capstone Project

Complete Task Manager with Laravel

  • User system (register/login/logout)
  • Dashboard for each user
  • Full CRUD for tasks
  • Categories (Many-to-Many)
  • Statuses: pending / in progress / completed
  • Advanced filtering and search
  • File attachments
  • Pagination + Bootstrap design

Projects Summary

Month One
5
Projects

HTML + CSS + Bootstrap

CV, Form, Landing, Restaurant, Portfolio
Month Two
5
Projects

JavaScript + DOM + APIs

Calculator, Quiz, Todo, Weather, Budget
Month Three
5
Projects

PHP + MySQL

Cards, Contact, DB Design, Students, Library
Month Four
4
Projects

Laravel

Company, Products, Blog, Task Manager

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 9
Composer
PHP Package Manager - From Week 13
Postman
API Testing - From Week 8

Recommended Learning Resources

Arabic Resources

  • Elzero Web School - HTML, CSS, JS
  • TheNewBaghdad - PHP, Laravel
  • Coder Shiyar - Laravel
  • Abdulrahman Gamal - Laravel

English Resources

  • freeCodeCamp.org - Full Frontend (Free)
  • Laravel Docs - Official Reference
  • Laracasts.com - Professional Videos
  • MDN Web Docs - JavaScript Reference
  • W3Schools.com - Quick Reference

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