Back to work

Personal Android project

ZamTrivia

A Zambia-focused Android quiz with timed play, category selection and local leaderboards.

Completed prototype2026Public repository
Dark ZamTrivia app artwork
Verified project evidence from the current implementation.
Role
Android Developer
Status
Completed prototype
Year
2026
Stack
Kotlin · XML layouts · ViewBinding · ViewModel · LiveData · SharedPreferences

01 · Context

The problem

Many quiz applications centre generic international content rather than knowledge that feels locally relevant to Zambian players.

The response

ZamTrivia packages Zambia-focused questions across ten categories with random play, timed answers, score calculation and a device-local leaderboard.

02 · Contribution

What I built

  • 01

    Created category and random quiz modes.

  • 02

    Implemented timer, scoring, answer feedback, skipping and skipped-question review.

  • 03

    Stored leaderboard entries locally with SharedPreferences.

  • 04

    Structured packaged questions as JSON and separated UI state through ViewModels.

03 · Implemented evidence

Current
capabilities.

Ten Zambia-focused categories
Random and category modes
Timed questions
Attempt and scoring rules
Skip and retry flow
Correct/incorrect feedback
Results screen
Local leaderboard

04 · Engineering

Hard parts,
clear decisions.

Quiz state across many paths

Timer expiry, incorrect attempts, skips and replaying skipped questions all needed to advance consistently without losing the final score.

05 · Reflection

What I learned

Android fragments and lifecycleViewModel stateLocal persistenceTimer-driven UXStructured content modelling

Public Kotlin source verified: ViewBinding, ViewModels, timer logic, category data, skip flow and SharedPreferences leaderboard are present.

Open to opportunities

Let’s discuss your role,
product or technical challenge.

Open to graduate software roles, internships, freelance projects, remote work, local business systems, startup partnerships and technical collaborations.

Start a conversation