Without notes, state yesterday’s main idea and one unresolved question.
What a full-stack developer actually does
Orientation, CLI, and the Web
Objective
Map browser, server, database, network, and source control into one system.
Treat the web as a connected system: the browser is a control panel, HTTP is the protocol, the server is the controller, and the database is persistent storage.
- frontend versus backend
- client/server boundaries
- data moving through the system
Why this matters
By the end of today you will be able to look at any website — a bank, a shop, a maintenance log — name the parts doing the work, and say where a piece of data is at each moment. That sounds modest. It is what separates people who can debug from people who guess, because you cannot fix a system whose shape you cannot picture.
Nothing gets installed today and no code gets written. Today you build the map.
The system you are actually building
"Full-stack" means you can work on every layer of a web application. There are five parts, and almost every web app you have ever used is made of exactly these.
The whole system at a glance
A web app is a control system with a remote panel. The browser is the operator panel — displays and buttons. The network is the bus carrying signals between the panel and the equipment. The server is the controller that decides what any signal means. The database is non-volatile memory that survives a power cycle. Source control is your revision-controlled schematic archive.
The client — where the person is
The client is the program in front of the human. For us that is the browser (Chrome, Firefox, Safari). Its job is to take files it is given and turn them into something a person can see and click: text, layout, colours, buttons, forms.
The critical fact: the browser runs on the user's own machine, which you do not control. It may be a ten-year-old phone on bad WiFi. Anything it does — including code you sent it — is visible to the user and can be modified by them. That one fact drives a great deal of what follows, especially about security.
The server — where the decisions happen
The server is a program running on a computer somewhere else, waiting for requests and answering them. When you open a page, the browser asks a server for it; the server decides what to send back.
The server is where anything trusted or private belongs: who may see what, how a price is calculated, your secret keys. Rules enforced only in the browser are suggestions, because the user controls the browser. Rules enforced on the server are real.
Everyday version
The browser is the counter of a shop. The server is the stockroom and the manager in the back. A customer can rearrange things on the counter all they like; they cannot walk into the stockroom and rewrite the price list.
The database — where facts survive
A database is a program built for storing data durably and finding it again quickly. When the server must remember something after the request ends — a user account, a maintenance record — it hands it to the database.
Why not keep it in the server's memory? Because memory is erased when the program stops, and programs stop all the time: crashes, restarts, deploys. The database keeps it on disk.
Registers vs EEPROM
Server memory is a register: fast, convenient, and blank after a power cycle. A database is EEPROM or an SD card: slower to reach, but the value is still there tomorrow. You keep working values in registers and commit the ones that matter to persistent storage.
The network — the space between
The browser and server are usually on different machines, often on different continents. The network carries requests and responses between them, using a protocol (an agreed set of rules) called HTTP, which you will learn properly in Week 6.
For today, one habit: the network is slow and it fails. It is the only part of the system with a delay you can feel, and requests genuinely get lost. Good applications are designed knowing this; naive ones assume the network is instant and reliable, and fall apart.
Source control — the history of your work
Source control (you will use Git) records the history of your code: every change, when, why, and by whom, with the ability to go back. The user never touches it, but it is part of the system you work in every day, and it is what makes changing things safe.
Revision-controlled schematics
You would not overwrite the only copy of a board schematic with an untested revision. Git is the revision archive: Rev A still exists, the change is annotated, and you can diff Rev B against it to see exactly which trace moved.
Walkthrough: one click, traced end to end
Follow one real interaction. A technician opens a maintenance app and clicks "Show pump #3 history".
- Browser — the technician clicks. The browser has code that says: when this is clicked, ask the server for pump #3's history. It sends a request across the network.
- Network — the request travels to the server. It carries what is wanted (
pump 3 history) and who is asking (a token proving the technician is logged in). - Server — the request arrives. The server checks the token: a real logged-in user, allowed to see pump #3? If not, it stops and answers "no". If yes, it needs data it does not have in memory, so it asks the database.
- Database — it receives a query meaning "all maintenance records where pump = 3, newest first", finds those rows on disk, and returns them.
- Server — it shapes those rows into a tidy response (usually JSON, a plain text format for structured data) and sends it back across the network.
- Browser — the response arrives and the browser turns that data into a visible table. The technician reads it.
Six steps, five parts, one click. Every web feature you build for the rest of this course is a variation on this loop.
Checkpoint
Say the path out loud without looking: browser → network → server → database → server → browser. If you can also say what each step decided, you have today's core idea.
How to use AI today
Today's mode is tutor. Whether AI helps you learn or replaces your learning is entirely a matter of how you ask.
A tutor-style request asks for an explanation, then a small example, then lets you attempt it yourself. A request that says "give me the finished answer" produces something you cannot debug, defend, or remember. Want the first kind — before you write code, you should be able to say what that code will do.
Use this at the start of your hour
"Explain client, server, API, and database using an electronics control-system analogy. Ask me three questions to verify I understand each boundary." Answer the three questions yourself before reading any further explanation.
Your turn
Draw a block diagram of a maintenance-record web app. Paper and a pen is genuinely fine; a drawing tool is fine too.
- Draw five boxes and label them: Browser, Network, Server, Database, Git repository.
- Draw an arrow from Browser to Server and label it with what travels along it: "request: show pump 3 history + who I am".
- Draw the return arrow and label it: "response: list of records as JSON".
- Draw arrows between Server and Database and label them: "query" and "rows".
- Mark the two boundaries where the machine changes: between Browser and Server (different computers, network in between), and between Server and Database (different programs). Write next to the first one: "user controls everything on this side".
- Connect the Git repository to the Server and Browser boxes with a dashed line labelled "the code that runs in these came from here".
You are done when
Your diagram has five labelled parts and every arrow says what data moves along it — not just that something moves.
Common pitfalls
- Thinking "the website" is one thing. It is at minimum two programs on two machines that communicate only by messages. Most confusing bugs live at that seam.
- Putting rules only in the browser. "The button is hidden so they can't do it" is not security — the user controls the browser. The server must check too.
- Confusing the server with the physical computer. "Server" usually means the program listening for requests. One machine can run several.
- Skipping the diagram because it feels basic. Drawing it is what proves you have the mental model, which is the entire point of today.
Verify it yourself
Open today's reference, MDN's How the web works, and find where it describes what happens when you type a URL and press Enter. Compare it to the six-step walkthrough above.
- MDN mentions DNS, which today's lesson left out. What job does it do, and where would it fit in your diagram?
- Does MDN agree that browser and server are separate machines exchanging messages? Find the sentence that says so.
Add DNS to your diagram once you work out where it belongs. Correcting today's simplified map with something you found yourself is exactly the skill this course is built on.
The hour
- 0–5 min Recall
- 5–20 min Learn
Read only the listed concept notes and official reference sections needed today.
- 20–48 min Build
Draw a block diagram for a maintenance-record web app. Label every boundary and data flow.
- 48–55 min Explain and verify
Run the result, inspect evidence, and explain the data/control flow in your own words.
- 55–60 min Quiz and commit
Complete the quiz, record one lesson, and commit the verified change when applicable.
What to hand in
A photographed or digital block diagram with five labeled parts.
Working with AI today
Ask for explanations, analogies, questions, and hints. Do not request a complete finished solution first.
Explain client, server, API, and database using an electronics control-system analogy. Ask me three questions to verify I understand each boundary.
References
End-of-day quiz
Explain-back gate
Pass the quiz above to unlock completion.
Quiz + explain-back checks required.