A1 · module A1.06
Meet the project: Portal
One running project carries the whole course. Portal is a learning platform — courses, enrollments, lessons, progress, payments — assembled as a stack of surfaces over one domain core, and carried from an empty repository to production.
The surfaces are five and they share a centre: a branded store that mints and decodes every id, an event-sourced engine behind one facade, a Phoenix web app, a Telegram bot, and a student dashboard. Each surface calls only the facade, never the core directly, so the stack grows without the surfaces entangling. This module frames Portal three ways: what it is, what carrying it zero→production demands, and how the climb is taken one provable rung at a time.
Surfaces over one facade
Portal is not a fresh domain per topic. It is one platform every example is practised on, so the work accumulates instead of resetting. At its centre sits a single domain core — courses, enrollments, lessons, progress, payments — reached through one facade. Around that facade sit five surfaces, each a different way to drive the same platform.
The discipline is the rule the figure makes visible: every surface calls the facade and only the facade. A surface never reaches into the core, and never into another surface. That keeps the blast radius of any change bounded to one box, and lets the platform gain a surface without disturbing the ones already there.
The stack · five surfaces, one facade, one core
Five surfaces, one door: every surface drives the platform through the same facade, so the stack grows wider without the surfaces growing tangled.
The three dives
Each dive takes one view of the project, in the arc what it is → what production demands → how the climb is taken: the multi-surface platform over one facade, the distance from an empty repository to a deployed system, and the rung-by-rung discipline that closes that distance. Read them in order — A1.06.1 starts.
What Portal is
The multi-surface platform over one facade: the domain core and the five surfaces that drive it, and why every surface calls the facade and only the facade.
Zero to production
What “zero” is — an empty repository — and what “production” demands of a system that real students depend on. The full distance the project crosses.
One rung at a time
Climbing from zero to production a thin, provable rung at a time: each rung small enough to specify, build, and accept before the next begins.
A non-trivial system is built and learned best on one running project carried end to end, so each lesson accumulates on the last instead of resetting to a fresh toy domain.
Portal is that project: one learning platform, surfaces over one facade, carried from an empty repository to production — and the A7 exemplar runs the whole workflow on it.
A1.06 closes chapter A1 by naming the project the rest of the course is built on. The internals of these surfaces — the Elixir and OTP underneath — are taught by the companion Functional Programming course; here they are the ground every later chapter decomposes. Return to the A1 module navigation to continue.
References
The delivery and design tradition behind carrying one project to production over thin slices, and where it connects in the course.
Sources
- Humble & Farley — Continuous Delivery — getting a system to a deployable, production-ready state and keeping it there.
- Hunt & Thomas — The Pragmatic Programmer — orthogonality and decoupling: surfaces behind a facade, change bounded to one box.
- Anthropic — Building effective agents — composing reliable systems for an agent to build against, surface by surface.
Related in this course
- A1.06.1 · What Portal is
- A1.06.2 · Zero to production
- A1.06.3 · One rung at a time
- A1 · Why an Agile Agent Workflow
- Companion · Functional Programming in Elixir — the Portal's Elixir and OTP internals, taught in full.