Back to portfolio
Muhamed Malkoč
03 / More project

Quiz Maker

An Angular application for creating, managing and sharing slideshow-style quizzes while the target backend API was still under development.

RoleFrontend architecture & implementation
Project typeTechnical assessment / independent case study
View source on GitHub
The challenge

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.

The approach

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.

What I built

Core implementation

01

Replaceable data layer

Repository abstractions allow mock and HTTP implementations to be exchanged without changing component logic.

02

Dynamic authoring

Reactive FormArray controls support an open-ended number of validated questions and answers.

03

Question recycling

Questions remain available independently of deleted quizzes and can be selected for reuse in new quizzes.

04

Shareable solve flow

URL-driven solve pages provide refresh-safe slideshow navigation with hidden answers and copied links.

Engineering judgment

Key decisions

  1. Used localStorage instead of static in-memory fixtures so assessment data survives refreshes.
  2. Separated quiz and question repositories because questions have a lifecycle beyond an individual quiz.
  3. Used standalone components and Signals alongside RxJS-based repositories.
  4. Added responsive card layouts, English/Croatian switching and theme persistence beyond the required scope.
Next iteration

What I would improve

Interested in how I approach product and engineering problems?

Let’s talk →