GeoLingo
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 validationGeoLingo.Api: ASP.NET Core backend, SQLite persistence, lesson delivery, gamification servicesGeoLingo.UI: shared Blazor components, map renderers, exercise hostsGeoLingo.Web: Blazor WebAssembly clientGeoLingo.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
Repository
Synced from GeoLingo: click folder names or ▶ arrows to expand. Use Expand all / Collapse all in the toolbar.