Back to Projects

GeoLingo

Gamified Geography · .NET Blazor · Maps & Learning
GeoLingo web app: skill tree, tabs, and lesson navigation

Skill tree navigation, lesson tabs, and the geography learning flow in the Blazor web client.

Project Overview

GeoLingo is a Duolingo-style geography learning app. It turns world knowledge into a gamified skill tree with 47 nodes and hundreds of interactive exercises: map tapping, shape matching, flag quizzes, landmark identification, and more.

The project uses a hybrid .NET architecture: a shared UI layer in Blazor, a WebAssembly client, a MAUI mobile app, and an ASP.NET Core API backed by SQLite. Content is versioned JSON that auto-reseeds while preserving learner progress.

Key Features

  • 47 skill nodes, 364 exercises: L1 to L5 difficulty, served in smart sessions
  • Interactive maps: Natural Earth GeoJSON, continent/ocean views, theme-aware styling
  • Exercise types: Map tap, shape match (drag & drop), multiple choice, typing, pairs, visual ID
  • Gamification: Hearts, XP, streaks, crowns (1–5), daily quests, leagues, achievements
  • Practice modes: Mistake review queue, timed drills, heart recovery
  • Cross-platform: Blazor WebAssembly + MAUI Blazor Hybrid with offline cache
  • Landmarks & flags: Curated SVG landmarks and flag quiz generator

Architecture

The solution is split into focused projects:

  • GeoLingo.Shared: models, DTOs, answer validators, content validation
  • GeoLingo.Api: ASP.NET Core backend, SQLite persistence, lesson delivery, gamification services
  • GeoLingo.UI: shared Blazor components, map renderers, exercise hosts
  • GeoLingo.Web: Blazor WebAssembly client
  • GeoLingo.Mobile: .NET MAUI Blazor Hybrid with offline support

Content lives in a single JSON pack that the API reseeds on startup. Map data uses GeoJSON; landmark illustrations are local SVGs.

Screenshots

GeoLingo lesson activity with map and exercise UI
Interactive lesson activity with map exercises and progress tracking.
GeoLingo skill tree with crowns and progression
Skill tree with crowns, streaks, and unlock progression.

My Role

Solo developer on this project. I was responsible for:

  • Designing the skill tree, exercise model, and answer validation engine
  • Building map components and GeoJSON rendering with Blazor + JS interop
  • Implementing gamification (hearts, streaks, leagues, crowns, daily quests)
  • Creating the shared Blazor UI layer used by both web and mobile
  • Developing the ASP.NET Core API and SQLite data layer
  • Building the Blazor WebAssembly client and MAUI hybrid mobile app
  • Writing content validation, tests, and deployment scripts

Technologies Used

C# .NET 7 ASP.NET Core Blazor WebAssembly MAUI SQLite Razor GeoJSON

Repository

Synced from GeoLingo: click folder names or ▶ arrows to expand. Use Expand all / Collapse all in the toolbar.