Enable users to discover, validate, and manage multiple remote data sources with intelligent health checking and collection browsing.
| ID | Feature | Complexity | Status |
|---|---|---|---|
| F-045 | Remote Source Health Check | Medium | ✅ Complete |
| F-046 | Collection Discovery UI | Medium | ✅ Complete |
| F-047 | Remote Source Management | Medium | ✅ Complete |
| F-062 | Collection Statistics Summary | Small | ✅ Complete |
| F-063 | Collection Export | Medium | ✅ Complete |
This milestone transforms itemdeck from a single-source viewer into a multi-source collection browser:
- Health Checking - Validate sources before loading with accessibility and schema checks
- Collection Discovery - Browse available collections from repository manifests
- Source Management - Add, remove, and switch between multiple data sources
- Collection Statistics - Display collection composition insights
- Collection Export - Export collection data in multiple formats
- Single hardcoded data source
- No pre-load validation
- Schema errors at runtime
- No collection browsing
- No source persistence
- User-managed source list (persisted)
- Health check before load
- Schema compatibility warnings
- Collection browser from manifest
- Quick source switching
src/
├── hooks/
│ ├── useSourceHealth.ts # F-045
│ └── useManifest.ts # F-046
├── stores/
│ └── sourceStore.ts # F-047
├── services/
│ ├── sourceHealth.ts # F-045
│ └── sourceValidation.ts # F-047
├── components/
│ ├── SourceHealth/ # F-045
│ │ └── SourceHealth.tsx
│ ├── CollectionBrowser/ # F-046
│ │ ├── CollectionBrowser.tsx
│ │ ├── CollectionCard.tsx
│ │ └── CollectionSwitcher.tsx
│ └── SourceManager/ # F-047
│ ├── SourceManager.tsx
│ ├── SourceList.tsx
│ └── AddSourceDialog.tsx
└── types/
└── manifest.ts # F-046
src/config/dataSource.ts- Add CDN URL builderssrc/hooks/useCollection.ts- Integrate health checksrc/components/Sidebar/- Add source managementsrc/components/SettingsPanel/- Add source settings
- Requires: v0.7.0 (Schema v2 with schemaVersion)
- Requires: v0.8.0 (if any prerequisites defined)
- Optional: None
- CDN First: jsDelivr as primary, raw GitHub as fallback
- Public Only: No authentication for private repos (scope limited)
- localStorage: Source list persisted client-side
- 5-Minute Cache: Health check results cached briefly
- Sources persist across sessions
- Health check completes in <500ms
- Schema compatibility shown before load
- Collection browser displays all manifest collections
- Source switching works seamlessly
- No breaking changes to existing functionality
- Source health checking with accessibility and schema validation
- Collection browser for discovering collections from repository manifests
- Source management panel for adding, removing, and switching sources
- Quick source switcher in header/sidebar
- Health status indicators (healthy/degraded/unavailable)
- jsDelivr CDN integration for faster, rate-limit-free fetching
- Collection statistics bar showing counts, ranges, and distributions
- Collection export to JSON, CSV, and Markdown formats
- Default to CDN URLs instead of raw GitHub URLs
- Collection loading preceded by health check
- Settings panel includes source management section
useSourceHealthhook for health checkinguseManifesthook for manifest discoverysourceStoreZustand store for source persistenceSourceHealthcomponent for status displayCollectionBrowsercomponent for collection discoverySourceManagercomponent for source CRUD
- State of the Art: Remote Data Assessment
- External Data Sources
- Roadmap Overview
- v0.7.0 Schema Flexibility
Status: Complete