← All projects

December 2021 · Client project

Open Trivia: Cross-Platform Quiz Product

Flutter + Laravel quiz app — topic library, timed play, scored results, and answer review shipped end-to-end for phones and tablets.

Context

The client wanted a free, ad-free quiz product people would actually finish — not a banner-stuffed trivia clone. That meant a clean play loop on phones and tablets, a real question catalogue, and a backend that could serve topics and scores without slowing the client down.

Open Trivia is the end-to-end mobile product I designed and built for that brief: Flutter clients on iOS and Android, Laravel APIs, and PostgreSQL for the question and session data.

Overview

I owned client and server: topic browsing, timed question play, results, and answer verification — plus the REST contract that keeps Flutter and Laravel in sync. The UX is intentionally simple: start → pick a topic → answer under a countdown → see score → review mistakes.

The visual system is high-contrast and brand-forward (magenta / charcoal / white) with wave transitions between sections — readable on small screens and consistent across the full session flow. Copy surfaces in both English and French (Retour, Réponse:), reflecting a bilingual audience.

What shipped

  • Start experience: branded splash with a single clear CTA (“Tap to start”)
  • Topic library: two-column catalogue across general knowledge, books, film, music, TV, video games, board games, science & nature, computers, mathematics, and more
  • Timed play: category header, question index, circular countdown, and four-option multiple choice
  • Results summary: question count, score %, correct / incorrect split, with paths to go back or verify answers
  • Answer review: per-question cards with green/red feedback and the correct answer when the player missed
  • Ad-free consumer model: uninterrupted sessions by design — no interstitial clutter in the play path
  • Cross-platform delivery: one Flutter codebase for phones and tablets; Laravel + PostgreSQL for APIs and persistence

Stack & craft

Flutter / Dart for the multiplatform client; Laravel (PHP) for REST APIs; PostgreSQL for durable storage. The engineering focus was reliable client–server sync (session state, scoring, review payloads) and consistent layout across device sizes and orientations.

Building an ad-free quiz sounds light until you own the whole loop: content model, timed interaction, results, localization strings, and an API that stays fast when people hammer “next question.”

Outcome

The client received a shippable consumer product — free to play, ad-free by principle, and coherent from splash through answer review. It is a clear example of full-stack ownership on a mobile client product: product IA, UI polish, and backend delivery in one pass.

© 2026 Toufic Hajj · Senior Full-Stack & Cloud Platform Engineer
Montreal, QC