Justin

Command Palette

Search for a command to run...

Back to project archive
In progress2026backend-desktop

ChronosMap Spatio-Temporal Weaver

A digital-archive navigator that replays history across map and timeline

ChronosMap is a cross-platform desktop app built with .NET 10 and Avalonia that projects historical events and archival records onto three linked dimensions: a map, a timeline, and a knowledge-relation topology graph. Dragging the timeline filters events by era, selecting a map pin expands its semantic links to people, places and organizations, and the app supports full create/edit/search plus JSON import and export.

Verified Demo Recording 1

Copied by the portfolio quality pass from existing project demo media.

11 screenshots2 demo videos

Media overview

Browse the project screenshots and recorded walkthroughs.

Project links and demo readiness

Project overview

## Overview ChronosMap (the Spatio-Temporal Weaver) is a digital-archive navigator that presents historical events and records across three dimensions at once: a **map**, a **timeline**, and a **knowledge-relation topology graph**. Dragging the timeline surfaces era-matching events on the map, and selecting a node expands that event's semantic ties to people, places and organizations in the topology view. ## Architecture The app uses **.NET 10 + Avalonia UI 12** for a cross-platform desktop front end, following the MVVM pattern via **ReactiveUI / CommunityToolkit.Mvvm**. Back-end logic adheres to **Clean Architecture**, split into `Domain` (KnowledgeEntity, HistoricalEvent, KnowledgeRelation, HistoricalTimeRange and related models), `Application` (use cases such as TemporalQueryService and ProjectDocumentService) and `Infrastructure` (LocalProjectFileStore, JSON serialization). The map layer uses **Mapsui** over OpenStreetMap tiles to render event pins. ## Key Features - Timeline slider with auto-play 'time cruise' that filters events by era in real time - Clickable map pins kept in two-way sync with the detail panel and list - A hand-built 2D force-directed topology graph that colors nodes by relation type - Full CRUD forms, keyword/tag search, and native JSON import/export ## Maturity The project is a **working, in-progress prototype**: the core interactions (map, timeline, topology graph, CRUD, persistence) are implemented with a staged development history and xUnit round-trip tests, while the README and parts of the legacy-model migration remain to be completed.

My role

Solo developer (architecture, domain modeling, UI and data layer — full stack)

Problem

Conventional digital archives present records as static lists, making it hard to grasp an artifact's time, space and relationships at once, and offering no interactive way to explore historical context.

Solution

A clean, layered architecture (Domain / Application / Infrastructure) is wired to an Avalonia UI through MVVM (ReactiveUI). Mapsui overlays OpenStreetMap tiles with event pins, a timeline slider drives a TemporalQueryService for era-based filtering, and a hand-built trigonometric force-directed canvas renders knowledge relations.

Current outcome

A working prototype: map pins, timeline cruise playback, the relation topology graph, CRUD forms and JSON persistence are all functional, backed by a domain model and xUnit round-trip tests.

Highlights

  • Three synchronized dimensions: map, timeline and knowledge topology
  • Mapsui + OpenStreetMap real-time geo pins with click selection
  • Clean Architecture split across Domain, Application and Infrastructure projects
  • TemporalQueryService filters events by time range and filter mode
  • Custom trigonometric force-directed graph for person/place/organization links
  • Native JSON import/export with smart migration of legacy saves on startup

Engineering challenges

  • Integrating Mapsui into Avalonia 12 and fixing pin styling plus two-way click binding
  • Refactoring duplicate domain-type compilation and partial-method signature conflicts

Target users

  • Portfolio reviewers and interviewers
  • Technical readers who need a quick view of purpose, stack, and maturity

Technical highlights

  • Detected technical signals: C#, .NET 10, Avalonia UI 12, ReactiveUI, CommunityToolkit.Mvvm, Mapsui, OpenStreetMap, xUnit, JSON Serialization
  • README evidence exists and can support a fuller reviewed case study
  • A public GitHub repository is not verified yet; the portfolio marks it as pending

Architecture

This case study is generated from the portfolio catalog pipeline using README, Git metadata, package/build configuration, and media signals. The final architecture narrative still needs source-level review. Current detected technology signals include: C#, .NET 10, Avalonia UI 12, ReactiveUI, CommunityToolkit.Mvvm, Mapsui, OpenStreetMap, xUnit, JSON Serialization.

Data flow

A public data-flow narrative is not fully reviewed yet. If the project includes data processing, AI pipelines, or backend APIs, the next pass should document input, processing, storage, and UI/output flow end to end.

Project structure

ChronosMap/
  README.md              # project documentation, when available
  source files           # implementation reviewed by local audit
  package/build config   # detected capability signals

Setup / Run guide

This project does not expose a verified runnable web command yet. Review the README/source tree and add exact install, run, test, and build commands before interview use.
Build support was detected from project configuration. Run the repo-specific build command before publishing new screenshots or demos.

Future improvements

  • Complete the production-quality README, screenshots, and demo recording
  • Add architecture diagrams, data-flow notes, and key technical decisions
  • Verify build/test status and update the portfolio release report

Interview notes

  • State the current maturity and demonstrable scope first
  • Focus on verified stack, source structure, and completed behavior
  • Do not claim unverified deployment, video, or test coverage as finished

Next steps

  • Flesh out the README and user documentation
  • Fully migrate the legacy ArchiveEvent to the new domain model and expand test coverage

Related projects