Overview
How did linked documents become interactive web applications, and what happens when we run one? This part connects a short history of the Web with a small working application: a browser interface, an HTTP API, a PostgreSQL database, and tests.
We will start the practice application, follow a saved todo into the browser, and try small source and test changes. Along the way, you will get to know what each piece does and how the pieces work together.
You don’t need to understand every file before starting. For now, we’ll build a picture of the application through examples you can run and inspect. Parts 2 and 3 develop the client and server programming in more detail; the practicalities’ quick references can help when a language construct is unfamiliar.
Part structure
- A Short History of Web Applications — Compare linked documents, server-generated pages, and browser applications.
- Running the Walking Skeleton — Download the walking skeleton, then start and inspect the extracted practice application.
- Containers & Multi-Service Development — Understand its images, services, addresses, and stored state.
- Inspecting the Client and API — Locate responsibilities in source and make small changes.
- PostgreSQL, Migrations & Development Data — Inspect saved rows and implement a reversible migration.
- Tracing a Request — Follow data from a database query to visible browser text.
- Tests as Executable Evidence — Read the supplied tests and write focused assertions.
- Marketplace Project: Starting with the Marketplace — Apply the ideas in the first increments of the marketplace project.
- Recap and Feedback — Reflect on the part and give feedback.
Background Survey
0 / 5 points
Before starting the course, please answer the short background survey below. It helps us understand the backgrounds of students taking the course, improve the course, and examine whether students with different backgrounds are supported equitably.
The content of your responses will not affect your grade. You may skip any question or select “Prefer not to answer”.