The front end is the part of a website or web application delivered to and used through the user’s browser.
Front-end responsibilities commonly include:
The front end is not automatically trusted. A user can inspect or alter content and code delivered to their own browser. Therefore, important rules must also be enforced by a trusted server.
For example, a browser interface can prevent a quantity field from showing a negative value, but the server must still reject an invalid order. Client-side checks improve the experience; they do not replace server-side validation.
The back end is the server-side part of a system that receives requests, applies application rules, communicates with storage or other services, and returns responses.
Back-end responsibilities might include:
The back end is not one particular programming language. JavaScript can run on a server, but many other languages can also be used. Similarly, a server can generate HTML or return data that browser code later uses.
Do not equate these terms:
A database is an organised collection of data managed so that a system can store, retrieve, and change information.
In an online bookshop, a database might hold:
Many relational databases organise data into tables containing rows and columns. Other database models exist, so “database” does not always mean a spreadsheet-like table.
A database is normally accessed through trusted application code, not exposed directly to an arbitrary browser page. The back end decides what operations are allowed and what data a particular user may receive.
API means application programming interface. An API defines how one software component can request data or an operation from another component.
In a web system, an API may define:
For example, a bookshop front end might send a request that conceptually means:
Give me the current public details for product 42.
The service might return data containing the product’s title, price, and stock status.
An API is not necessarily a public service, and it is not automatically safe. Its implementation must validate requests, protect restricted data, and enforce permissions.
The Fetch Standard defines the web platform’s request, response, and fetching concepts. In this course, you only need the high-level model for now: a request goes out and a response comes back. HTTP details belong to Lesson 1.4.
HTML describes a document’s content and structure. It identifies meaningful parts such as headings, paragraphs, navigation, lists, buttons, images, tables, and forms.
HTML answers questions such as:
HTML is not merely “the skeleton” in a visual sense. Its meaning supports browsers, search systems, assistive technologies, and other software that interprets documents.
CSS describes how structured documents are presented. It controls matters such as:
CSS normally does not change the underlying meaning expressed by HTML. A heading styled to look small is still a heading; an ordinary paragraph styled to look large does not become a real heading.
JavaScript is the commonly used name for the language standardised as ECMAScript in web browsers. It can run logic, respond to events, modify a document, validate input for user convenience, and request data.
Examples include:
JavaScript is not required for every website. Native HTML and CSS should be used for the structure, presentation, and interactions they already support. When a requirement genuinely needs program logic, JavaScript may be appropriate.
JavaScript can also run outside the browser, including on servers. Therefore, “JavaScript” and “front end” are not synonyms.
Imagine a customer chooses one book and submits an order.
HTML provides the form and its meaningful controls. CSS makes the interface readable and responsive. Optional JavaScript may improve the interaction, but the form’s important data still needs trusted processing.
The browser sends order information to an address handled by the shop’s server or API.
The back end checks matters such as:
It must not trust a price merely because that price appeared in the browser.
The application reads or updates the database and may communicate with another service, such as a payment provider.
The response might confirm success, report a validation problem, require another step, or report a temporary failure.
The browser displays the result in a form the user can understand and operate.
This sequence is simplified. Real systems may use several services, queues, caches, and security layers. The simplification is appropriate here because the goal is to understand responsibilities, not to design a production commerce platform.
lesson-1-2-bookshop-map/
├── index.html
└── styles.css
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Online Bookshop System Map</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<main>
<h1>Online bookshop system map</h1>
<p>This page explains responsibilities. It is not a working shop.</p>
<section>
<h2>1. Browser and front end</h2>
<ul>
<li>HTML gives content and controls their meaning.</li>
<li>CSS controls presentation and responsive layout.</li>
<li>Optional JavaScript can provide additional programmed behaviour.</li>
</ul>
</section>
<section>
<h2>2. API boundary</h2>
<p>Defines how the front end requests permitted data or operations.</p>
</section>
<section>
<h2>3. Back end</h2>
<ul>
<li>Validates trusted business rules.</li>
<li>Checks identity and permissions.</li>
<li>Coordinates the order process.</li>
</ul>
</section>
<section>
<h2>4. Database</h2>
<p>Stores organised product, account, and order data.</p>
</section>
<section>
<h2>Requirement plan</h2>
<table>
<thead>
<tr>
<th scope="col">Requirement</th>
<th scope="col">Parts needed</th>
</tr>
</thead>
<tbody>
<tr>
<td>Show the public shop description</td>
<td>HTML and CSS; it may be statically delivered</td>
</tr>
<tr>
<td>Complete a secure purchase</td>
<td>Front end, API, back end, data storage, and payment service</td>
</tr>
</tbody>
</table>
</section>
</main>
</body>
</html>
styles.css
body {
margin: 0;
background: #eef3f8;
color: #17212b;
font-family: Arial, sans-serif;
line-height: 1.6;
}
main {
max-width: 52rem;
margin: 0 auto;
padding: 2rem 1rem 4rem;
}
section {
margin-block: 1rem;
padding: 1rem;
background: #ffffff;
border: 1px solid #c7d3df;
}
h1,
h2 {
line-height: 1.25;
}
table {
width: 100%;
border-collapse: collapse;
}
th,
td {
padding: 0.75rem;
border: 1px solid #9cabb9;
text-align: left;
vertical-align: top;
}
th {
background: #dce8f2;
}
Individual tags and CSS declarations remain a preview. Tables are taught in Module 6; CSS begins in Module 7.
Add this requirement to the table:
Show the signed-in customer’s previous orders.
Add the following row inside the table body:
<tr>
<td>Show the signed-in customer's previous orders</td>
<td>Front end, API, back end, authentication and permissions, and database</td>
</tr>
The demonstration relies on basic document, list, and table features. Its information remains understandable without CSS because the HTML source order and text carry the meaning.
No API request is actually made, so there is no network or JavaScript compatibility claim to test. Fetching is introduced conceptually from the current Fetch Standard; browser programming with fetch() belongs outside this course’s HTML/CSS core.
The supplied demonstration:
Do not interpret these features as proof of full accessibility. The complete audit process comes later.
The front end includes document meaning, controls, content states, user input, and communication with services—not only colour and layout.
Presentation cannot replace correct HTML. A large bold paragraph is not automatically a heading.
Anything sent by a browser must be validated by the server before a trusted action occurs.
The database stores and manages data. Back-end application code applies rules and controls access to that data.
Use “API” when discussing a defined software interface. A server can also return complete HTML documents or static files.
For each requirement, identify all necessary system parts from this list:
More than one answer may be correct. State when the information is insufficient.
The answers were checked for role separation and for the security boundary described in the lesson. No claim is made that these short descriptions determine a production architecture.