mirror of
https://github.com/olehomelchenko/astrolabe-nvc.git
synced 2025-12-21 21:22:23 +00:00
- Introduced a new modal for managing datasets, including options to create, view, and delete datasets. - Implemented IndexedDB for persistent storage of datasets, allowing for efficient data retrieval and management. - Added UI components for dataset details, including statistics and preview. - Enhanced the app's JavaScript to handle dataset operations such as saving, updating, and deleting datasets. - Integrated dataset reference resolution in the visualization editor to support dynamic data sources. - Updated styles for the new modal and dataset management UI for improved user experience.
1.5 KiB
1.5 KiB
CLAUDE.md
Instructions for Claude Code when working on this project.
Project Overview
Astrolabe is a lightweight, browser-based snippet manager for Vega-Lite visualizations. Pure vanilla JavaScript, no build tools, retro Windows 2000 aesthetic.
Architecture
- Frontend-only: HTML/CSS/JavaScript with CDN dependencies (Monaco Editor, Vega-Embed)
- Storage:
- Snippets: localStorage with Phase 0 schema (id, name, created, modified, spec, draftSpec, comment, tags, datasetRefs, meta)
- Datasets: IndexedDB (unlimited size, multi-format: JSON/CSV/TSV/TopoJSON, inline & URL sources)
- Structure: Three resizable panels (snippet library, Monaco editor, live preview) + Dataset Manager modal
- No build tools: Open
index.htmldirectly in browser (needs local server for IndexedDB)
Current Status
Completed: Phases 0-10 (Core functionality + Dataset Management) Next: Phase 11 - Advanced Dataset Features (optional enhancements)
Key Features Implemented
- ✅ Snippet management with draft/published workflow
- ✅ Multi-field sorting and real-time search
- ✅ Storage monitoring and import/export
- ✅ Dataset management with IndexedDB
- Multi-format support (JSON, CSV, TSV, TopoJSON)
- Multi-source support (inline data, URL references)
- Automatic metadata calculation and URL fetching
- Dataset reference resolution in Vega-Lite specs
- Modal UI with button-group selectors
See docs/dev-plan.md for complete roadmap and technical details.