Introduction to Web Development and CMS
| Site: | Newgate University Minna - Elearning Platform |
| Course: | Web Development using Content Management Systems |
| Book: | Introduction to Web Development and CMS |
| Printed by: | Guest user |
| Date: | Monday, 9 November 2026, 11:39 AM |
Description
Every website you have ever visited from a school portal to a global news site is either hand-built or CMS-powered. By the end of this module you will know exactly which one, why it matters, and what's really running under the hood.
1. How the Web Works
A website is a set of files (HTML, CSS, JavaScript, images, and sometimes server-side code) stored on a computer called a server. When you type a URL, your browser sends a request over HTTP/HTTPS to that server, which sends back the files needed to render the page.
Web development is the process of building and maintaining websites and web applications — from simple static pages to complex dynamic systems. A full web application typically combines front-end technologies (what the user sees and touches) with back-end technologies (how the system works behind the scenes).
Static vs Dynamic: a static website's pages are fixed files — the content is identical for every visitor until a developer manually edits and re-uploads it. A dynamic website pulls content from a database at request time, so pages can change based on user input, time, or stored data. Static sites are simple and fast; dynamic (usually CMS-powered) sites let non-technical staff publish and update content without touching code.
2. HTTP Status Codes Explained
Every single request your browser sends to a server gets a reply carrying a three-digit HTTP status code, telling you exactly what happened. Reading these codes is one of the fastest ways to diagnose a broken page, a misconfigured CMS, or a blocked request — you will use them constantly once you start managing live websites. Codes are grouped into five classes by their first digit:
|
Code |
Name |
What It Means |
Where You'll See It in CMS Work |
|
100 |
Continue |
The server has received the request headers and the client should proceed to send the body. |
Rare; large file uploads (e.g., media library). |
|
200 |
OK |
The request succeeded and the server is returning the requested content. |
A normal, healthy page or API load. |
|
201 |
Created |
The request succeeded and a new resource was created. |
A REST API call that creates a new post/user. |
|
204 |
No Content |
The request succeeded but there is nothing to return. |
A successful background save with no visible response. |
|
301 |
Moved Permanently |
The resource has a new, permanent URL; browsers and search engines should update their records. |
A page/post slug changed, or http:// was redirected to https://. |
|
302 |
Found (Temporary Redirect) |
The resource is temporarily at a different URL. |
Login redirects, maintenance-mode redirects. |
|
304 |
Not Modified |
The cached version the browser already has is still valid; no need to re-download. |
Caching plugins returning a cached asset. |
|
400 |
Bad Request |
The server could not understand the request due to malformed syntax. |
A broken form submission or malformed API call. |
|
401 |
Unauthorized |
Authentication is required and has failed or not been provided. |
Trying to access wp-admin while logged out. |
|
403 |
Forbidden |
The server understood the request but refuses to authorise it. |
A security plugin blocking a suspicious request; wrong file permissions. |
|
404 |
Not Found |
The server cannot find the requested resource. |
A broken link, deleted page, or mistyped URL — the most common CMS error. |
|
405 |
Method Not Allowed |
The HTTP method used (GET/POST/etc.) is not supported for that URL. |
Submitting a form to the wrong endpoint. |
|
408 |
Request Timeout |
The server timed out waiting for the request. |
Very slow network or server under heavy load. |
|
409 |
Conflict |
The request conflicts with the current state of the resource. |
Two editors saving the same post simultaneously. |
|
410 |
Gone |
The resource existed once but has been permanently removed. |
A deliberately deleted page the owner wants removed from search results. |
|
429 |
Too Many Requests |
The client has sent too many requests in a given time (rate limiting). |
A brute-force login attempt being blocked by a security plugin. |
|
500 |
Internal Server Error |
A generic server-side failure — something broke in the server's own code. |
A fatal PHP error, often from a broken plugin/theme update — the dreaded 'white screen of death'. |
|
502 |
Bad Gateway |
A server acting as a gateway/proxy received an invalid response from an upstream server. |
Misconfigured reverse proxy or overloaded hosting. |
|
503 |
Service Unavailable |
The server is temporarily unable to handle the request (overload or maintenance). |
A site in maintenance mode, or a traffic spike overwhelming the host. |
|
504 |
Gateway Timeout |
A gateway/proxy did not get a timely response from an upstream server. |
A slow database query or an overloaded host taking too long to respond. |
As a rule of thumb: 2xx means success, 3xx means 'look elsewhere', 4xx means the client (browser/user) made a mistake or lacks permission, and 5xx means the server itself failed. When a client reports 'the site is down,' checking the status code in DevTools' Network tab (Module 1 Practical) is always the first diagnostic step.
3. The Four Core Web Technologies
The Four Core Web Technologies
• HTML — structures web content.
• CSS — styles and formats the content.
• JavaScript — adds interactivity and dynamic behaviour.
• PHP — handles server-side logic and database interaction.
1.4 HTML (HyperText Markup Language)
Definition: HTML is the standard markup language used to create and organise the content of web pages. It defines the structure of web documents using elements and tags.
• Defines page structure using tags such as <html>, <head>, <body>, <div>, etc.
• Supports semantic elements like <article>, <nav>, <footer>, and <section> for improved accessibility and SEO.
• Enables embedding of multimedia content via <img>, <video>, <audio>, and others.
• Supports forms using tags like <form>, <input>, <textarea>, and <button>.
|
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Sample Page</title> </head> <body> <h1>Welcome to Web Development</h1> <p>This is a sample paragraph.</p> <a href="https://example.com">Visit Example</a> </body> </html> |
Role: HTML is the skeleton of every web page — it provides the framework on which CSS and JavaScript operate.
1.5 CSS (Cascading Style Sheets)
Definition: CSS controls the appearance and layout of web content structured with HTML. It separates content from presentation, allowing consistent styling across multiple pages.
• Style rules apply to elements via selectors (element, class, ID, etc.).
• Supports colour, spacing, alignment, fonts, and animations.
• Enables responsive design through media queries.
• Can be applied inline, internally (<style>), or externally via .css files.
|
body { background-color: #ffffff; font-family: 'Arial', sans-serif; margin: 0; padding: 0; }
h1 { color: #2c3e50; text-align: center; } |
Applying CSS: <head><link rel="stylesheet" href="style.css"></head>. Role: CSS makes a site visually appealing and consistent, and plays a critical part in user experience (UX) and interface design.
1.6 JavaScript
Definition: JavaScript is a powerful, high-level scripting language used primarily for client-side interactivity and behaviour in websites.
• Manipulates HTML content through the DOM (Document Object Model).
• Supports event-driven programming (e.g., click, input).
• Performs form validation, animations, and API interactions.
• Works with HTML/CSS to create single-page applications (SPAs).
|
<button onclick="showMessage()">Click Me</button> <script> function showMessage() { alert("You clicked the button!"); } </script> |
Advanced features: asynchronous programming with Promises and async/await; fetching external data via AJAX, the Fetch API, or libraries like Axios; and frameworks such as React, Angular, and Vue.js that extend JavaScript's capabilities. Role: JavaScript brings a static page to life through interaction, validation, and asynchronous data loading.
1.7 PHP (Hypertext Preprocessor)
Definition: PHP is an open-source, server-side scripting language used to build dynamic and interactive web applications.
• Runs on the server and embeds easily within HTML.
• Interacts with databases (commonly MySQL).
• Manages forms, sessions, authentication, and file uploads.
• Powers popular CMS platforms such as WordPress, Drupal, and Joomla.
|
<?php $name = "John"; echo "Welcome, " . $name; ?>
<p><?php echo "Today's date is " . date("Y-m-d"); ?></p> |
Role: PHP processes logic and generates HTML content dynamically — it is central to back-end, CMS-driven development.
1.8 Comparison, Interoperability and a Practical Scenario
|
Technology |
Type |
Execution |
Primary Role |
|
HTML |
Markup Language |
Browser (client-side) |
Page structure |
|
CSS |
Styling Language |
Browser (client-side) |
Design and layout |
|
JavaScript |
Scripting Language |
Browser (client-side) |
Interactivity and logic |
|
PHP |
Server-side Script |
Web Server |
Backend logic and database interaction |
Use case a blog website: HTML structures the content (posts, headings, links); CSS beautifies the site with colours, spacing and responsiveness; JavaScript validates comment forms and loads new posts without a page reload; and PHP stores and retrieves blog content from a database and manages logins/sessions. Mastering how these four technologies integrate is the foundation for everything that follows in this course, including CMS platforms.
4. 9 What is a Content Management System (CMS)?
A Content Management System (CMS) is a software application that lets users technical or not create, manage, and modify digital content on a website without specialised programming skills. Think of it as a digital office for your website: instead of hand-coding every page and update, a CMS gives you a dashboard and a set of tools to do it efficiently.
1.10 Architecture and Core Components of a CMS
|
Component |
Description |
|
Content Management Application (CMA) |
The front-end interface that lets non-technical users add, edit, format, and publish content — e.g., the visual editor in WordPress or the page builder in Wix. |
|
Content Delivery Application (CDA) |
The back-end process that compiles content and renders it for visitors — when someone visits your site, the CDA retrieves content from the database and displays it in the correct format. |
|
Database |
Stores content, user information, templates, and metadata. |
|
Themes / Templates |
Control layout, design, and user interface. |
|
Plugins / Extensions |
Extend CMS functionality without modifying core code. |
|
Media Library |
Handles image, video, and file uploads and reuse. |
|
User Role Management |
Controls access and permissions across users (Admin, Editor, Author, Subscriber, etc.). |
1.11 How a CMS Works (Simplified)
• Content Creation & Storage — you create content via the CMA; it's stored in a database (e.g., MySQL, PostgreSQL).
• Templating & Design — themes/templates define the site's visual appearance and layout; pre-built or customised.
• Dynamic Content Delivery — when a visitor requests a page, the CDA retrieves content from the database, combines it with the chosen template, and generates the page shown in the browser.
• User Roles & Permissions — different roles (administrator, editor, author) get different access levels, enabling collaborative content management.
5. Classification of CMS (by Deployment Model)
Classification of CMS (by Deployment Model)
|
Type |
Description |
|
Open-source CMS |
Free, community-driven platforms (e.g., WordPress, Joomla, Drupal). |
|
Proprietary CMS |
Paid, licensed software maintained by a company (e.g., Adobe Experience Manager, Sitecore). |
|
Headless CMS |
Decouples content management from presentation (e.g., Contentful, Strapi). |
|
Cloud-based CMS |
Hosted on the cloud, accessible via browser (e.g., Wix, Squarespace). |
Common Features of a CMS
• WYSIWYG editor (What You See Is What You Get)
• Drag-and-drop page builders
• Template and theme support
• Modular plugin architecture
• Workflow and approval management
• Multilingual support
• Content versioning and history
• SEO tools
• Analytics and reporting integration
• Security controls and user permissions
1.16 Examples of Popular CMS Platforms
|
CMS |
Description |
Best For |
|
WordPress |
Most popular CMS; plugin-rich and easy to use. |
Blogs, business sites, portfolios |
|
Joomla! |
Strong user management and multilingual support. |
Communities, portals |
|
Drupal |
Highly secure and scalable. |
Government, universities, large enterprises |
|
Magento (Adobe Commerce) |
E-commerce-focused. |
Online retail and marketplaces |
|
Shopify |
Hosted CMS for e-commerce. |
Small to medium online stores |
|
Typo3 |
Enterprise-level CMS with scalability. |
Enterprise web applications |
|
Ghost |
Focused on publishing and blogging. |
Content-driven websites |
|
Contentful / Strapi (Headless) |
Delivers content to multiple platforms via APIs. |
Omnichannel apps, mobile integration |
|
MS SharePoint |
Enterprise intranet/document management, tied to Microsoft 365. |
Internal portals, team collaboration |
6. Importance of a CMS
Importance of a CMS
• Ease of use & accessibility — empowers people without coding skills to build and manage professional websites.
• Simplified content updates — changes can be made quickly by anyone with access, without a developer.
• Collaboration & workflow — multiple users can contribute with defined roles and approval workflows.
• Scalability & flexibility — grows with the site's needs; features can be added without starting over.
• Improved SEO — built-in tools for meta tags, clean URLs, and sitemap generation.
• Extensibility — vast plugin/extension ecosystems add functionality without writing code.
• Consistent branding — themes/templates keep the look and feel consistent site-wide.
• Security & maintenance — reputable CMS platforms ship regular security updates and patches.
• Community support — large communities provide documentation, forums, and tutorials.
Common Use Cases for a CMS
• Blogs — publishing articles, comments, and categorisation.
• Business websites — professional online presences, product/service showcases, portfolios.
• E-commerce stores — shopping carts, payment gateways, and inventory (e.g., WooCommerce, Magento).
• News & magazine sites — timely articles, categories, and author contributions.
• Educational institutions — academic sites, course portals, and online learning platforms.
• Government websites — public information, services, and citizen engagement.
• Non-profit organisations — awareness campaigns, donations, and volunteer management.
• Portfolios — showcasing creative work for artists, designers, and photographers.
7. Tools to Identify the Technology Stack Behind Any Website
17 Tools to Identify the Technology Stack Behind Any Website
Given any live website, you can usually find out exactly which CMS, theme, plugins, server software, and even analytics tools it runs without ever logging in. This is an essential skill for competitor research, security auditing (with permission), and simply understanding how real-world sites are built. Below are the main tools, what each is for, and how to use it.
|
Tool |
What It's Used For |
How to Use It |
|
View Page Source (Ctrl+U) / Inspect Element (F12) |
Free, built into every browser. Reveals raw HTML/CSS/JS, folder paths, and generator meta tags that often name the CMS directly. |
Open any page, press Ctrl+U (or right-click → View Page Source), then Ctrl+F to search for terms like 'wp-content', 'generator', or 'joomla'. |
|
Browser DevTools — Network Tab |
Shows the actual HTTP response headers from the server, which can reveal the backend language/server software (e.g., 'X-Powered-By: PHP', 'Server: Apache'). |
Press F12 → Network tab → reload the page → click the main document request → open the Headers panel. |
|
WhatCMS.org |
A dedicated online lookup that detects which CMS a given URL is running, along with its detected version where possible. |
Go to whatcms.org, paste the site's URL into the search box, and click 'Detect CMS'. |
|
BuiltWith.com |
A deeper technology-profile report: CMS, analytics tools, advertising networks, hosting provider, JavaScript libraries, and more — popular for sales/competitive research. |
Go to builtwith.com, enter the domain, and review the categorised technology report it generates. |
|
Wappalyzer (browser extension) |
Identifies the CMS, JS frameworks, analytics tools, payment processors, and server software for any site you're currently browsing, shown as small badges. |
Install the Wappalyzer extension from your browser's extension store, then click its toolbar icon while visiting any site. |
|
Netcraft Site Report |
Reveals hosting provider, server location, IP address history, and server software/technology for a domain. |
Go to Netcraft's 'Site Report' tool, enter the domain, and read the generated report. |
|
WPScan |
A WordPress-specific security scanner: detects the exact WordPress version, active theme, installed plugins, and any known vulnerabilities in them. |
Install via gem/Docker, then run: wpscan --url https://example.com — only ever run this against sites you own or have explicit permission to test. |
|
Manual path fingerprinting |
Many CMS platforms expose predictable admin/login URLs that confirm which CMS is running even without any tool. |
Try appending common paths to the domain, e.g. /wp-admin/ or /wp-login.php (WordPress), /administrator/ (Joomla), /user/login (Drupal), and see which one resolves. |
Ethical note: identifying a site's technology stack from public information (page source, HTTP headers, published lookup tools) is normal, everyday research. Actively probing for vulnerabilities (as WPScan can do) must only be done on sites you own or have explicit written permission to test — doing so on a site without permission is illegal in most jurisdictions.
8. CMS vs Traditional Web Development
CMS vs Traditional Web Development
|
Criteria |
CMS |
Traditional Development |
|
Development speed |
Faster (pre-built modules) |
Slower (built from scratch) |
|
User access |
Multi-user, role-based |
Limited unless coded |
|
Technical skill required |
Low to medium |
High |
|
Maintenance |
Easy (via admin panel) |
Manual and technical |
|
Customisation |
Moderate to high (via plugins) |
Very high (fully customisable) |
|
Examples |
WordPress, Drupal |
Hand-coded HTML/CSS/JS/PHP projects |
CMS Use Cases by Sector
|
Sector |
CMS Application |
|
Education |
Course content delivery, e-learning platforms (e.g., Moodle, WordPress LMS). |
|
E-commerce |
Online product catalogue, cart and payment integration. |
|
Government |
Citizen information portals, documentation, announcements. |
|
Media & publishing |
News portals, blogging platforms. |
|
Corporate |
Branding, internal documentation, HR portals. |
|
Non-profits |
Donation systems, campaign sites, volunteer portals. |
Limitations and Challenges of CMS
• Performance issues — poorly optimised themes/plugins can slow a site down.
• Security vulnerabilities — requires frequent updates to core and extensions.
• Customisation limits — deep custom functionality may still require developers.
• Plugin conflicts — third-party extensions may not work well together.
• Hosting dependence — performance is often tied to the hosting environment.
Summary: a CMS is a critical tool for modern web development, empowering users to manage content effectively without deep coding skills. Its flexibility, scalability, and user-centric features make it essential across education, e-commerce, media, government, and beyond. Understanding CMS architecture and how it differs from traditional hand-coded development prepares you to build, manage, and deploy scalable, user-friendly web applications for the rest of this course.