How dspaul/compass works
COMPASS is a desktop organizer for tabletop-RPG resources. Its main user workflow is to gather books and other resources into collections, enrich and categorize them, then search, filter, and view them in a preferred layout. The graph includes documented capabilities whose implementation files are present in the tree, but whose source was not sampled; those feature links use README evidence. The sampled excerpts and source index provide stronger evidence for collection persistence, crash reporting, and update checks.
Main entry points: Codex.cs Resource records · Layouts Library layouts · CollectionManager.cs Collection management · MainViewModel.cs Application shell
Components 21
Desktop experience
- Application shell
Source/COMPASS.Common/Shell/MainViewModel.cs - Library layouts
Source/COMPASS.Common/Features/Layouts - Crash handling
Source/COMPASS.Common/Shell/CrashHandler.cs
Library management
- Resource records
Source/COMPASS.Common/Domain/Codex.cs - Collections
Source/COMPASS.Common/Domain/CodexCollection.cs - Collection management
Source/COMPASS.Common/Features/CodexCollections/CollectionManager.cs - Import and export
Source/COMPASS.Common/Features/ImportExport - Metadata sources
Source/COMPASS.Common/Features/Metadata/Sources
Organization and discovery
- Tags and folders
Source/COMPASS.Common/Features/Tags - Filtering and sorting
Source/COMPASS.Common/Features/Filtering - Layout preferences
Source/COMPASS.Common/Features/Layouts
Storage and services
- Collection repository
Source/COMPASS.Common/Features/Persistence/Repositories/CodexCollectionXmlRepository.cs - Preferences
Source/COMPASS.Common/Features/Settings/Preferences.cs - Cover storage
Source/COMPASS.Common/Features/Covers/CoverStorageService.cs - User file storage
Source/COMPASS.Common/Features/Persistence/Storage/UserFilesStorageService.cs - COMPASS API client
Source/COMPASS.ApiClients/Compass/CompassApiClient.cs - Update manager
Source/COMPASS.Infra/Updates/UpdateManager.cs - GitHub API client
Source/COMPASS.ApiClients/GitHub/GitHubApiClient.cs
Other components
- TTRPG user
- Local app data
- GitHub releases
Connections 23
- TTRPG user → Application shell: uses
README.md - Application shell → Collection management: manages
- TTRPG user → Import and export: imports resources
README.md - Import and export → Collections: adds resources
README.md - TTRPG user → Metadata sources: enriches resources
README.md - Metadata sources → Resource records: supplies metadata
README.md - TTRPG user → Tags and folders: categorizes resources
README.md - Tags and folders → Resource records: categorizes
README.md - TTRPG user → Filtering and sorting: searches library
README.md - Filtering and sorting → Resource records: filters and sorts
README.md - TTRPG user → Library layouts: views library
README.md - Library layouts → Resource records: displays
README.md - Library layouts → Layout preferences: uses preferences
- Collection management → Collections: manages
Source/COMPASS.Common/Features/CodexCollections/CollectionManager.cs - Collection management → Collection repository: uses repository
Source/COMPASS.Common/Features/CodexCollections/CollectionManager.cs - Collection repository → Local app data: persists collections
- TTRPG user → Crash handling: reports crash
Source/COMPASS.Common/Shell/CrashHandler.cs - Crash handling → COMPASS API client: submits report
Source/COMPASS.Common/Shell/CrashHandler.cs - TTRPG user → Update manager: checks updates
- Update manager → GitHub API client: requests releases
- GitHub API client → GitHub releases: fetches releases
- Cover storage → Local app data: stores covers
- User file storage → Local app data: stores files