Replaceable data layer
Repository abstractions allow mock and HTTP implementations to be exchanged without changing component logic.
An Angular application for creating, managing and sharing slideshow-style quizzes while the target backend API was still under development.
The frontend had to be completed before the real backend existed. It needed full quiz management, an unlimited dynamic question form, reusable questions from deleted or previous quizzes and a refresh-safe URL that could be shared with mobile participants.
I placed quiz and question access behind repository contracts, with localStorage-backed mock implementations and API implementations selected through environment configuration. Components stay independent of the data source while Reactive Forms, Signals and route-driven pages handle authoring and solving workflows.
Repository abstractions allow mock and HTTP implementations to be exchanged without changing component logic.
Reactive FormArray controls support an open-ended number of validated questions and answers.
Questions remain available independently of deleted quizzes and can be selected for reuse in new quizzes.
URL-driven solve pages provide refresh-safe slideshow navigation with hidden answers and copied links.
Interested in how I approach product and engineering problems?
Let’s talk →