jonnifyagile agents
jonnify / Agile Agent Workflow / A1 · Why an Agile Agent Workflow / A1.06 · Meet the project: Portal

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

Branded store ids in & out Event engine event-sourced Phoenix web browser surface Telegram bot chat surface Dashboard student view THE FACADE the one door into the platform — every surface calls here DOMAIN CORE courses · enrollments · lessons · progress · payments
Branded store — ids in & out. Path: Branded store → facade → core. Reaches the core directly: no — only through the facade.

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.

the principle

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.

on the Portal

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

Related in this course