Skip to content

Commit c51bc31

Browse files
authored
docs: readme (#13)
1 parent ba8653f commit c51bc31

12 files changed

Lines changed: 710 additions & 1 deletion

File tree

.cursor/rules/specify-rules.mdc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Auto-generated from all feature plans. Last updated: 2025-11-26
99
- N/A (workflow files stored in `.github/workflows/`) (004-github-pages-deployment)
1010
- TypeScript 5.9+ + React 18.3+, Tailwind CSS 4.1+, @excalidraw/excalidraw 0.18+, plan-viz 0.1.4, Zustand 5.0+ (005-ui-improvements)
1111
- Browser localStorage (for panel size preferences), IndexedDB (existing offline storage) (005-ui-improvements)
12+
- Markdown (GitHub Flavored Markdown) + None (plain markdown file) (006-readme-documentation)
13+
- N/A (static file in repository) (006-readme-documentation)
1214

1315
- TypeScript 5.x with React 18.2+ + React, React Router v6, Zustand, Tailwind CSS, Recharts (charts), (001-admin-template)
1416
- TypeScript 5.x with React 18+ + plan-viz, @excalidraw/excalidraw, Zustand (002-plan-visualizer)
@@ -29,9 +31,9 @@ npm test && npm run lint
2931
TypeScript 5.x with React 18.2+: Follow standard conventions
3032

3133
## Recent Changes
34+
- 006-readme-documentation: Added Markdown (GitHub Flavored Markdown) + None (plain markdown file)
3235
- 005-ui-improvements: Added TypeScript 5.9+ + React 18.3+, Tailwind CSS 4.1+, @excalidraw/excalidraw 0.18+, plan-viz 0.1.4, Zustand 5.0+
3336
- 004-github-pages-deployment: Added YAML (GitHub Actions workflow syntax), Node.js 18+ (for npm/build commands)
34-
- 003-offline-multi-platform: Added TypeScript 5.9+ with React 18.3+
3537

3638

3739
<!-- MANUAL ADDITIONS START -->

LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Plan Visualizer
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+

PlanVisualizer.png

292 KB
Loading

README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Plan Visualizer
2+
3+
A graphical web application for visualizing Apache DataFusion physical execution plans as interactive Excalidraw diagrams. Convert execution plans into clear visualizations with color coding that highlights key properties like parallelism, sort order preservation, pushdown optimizations, and operator selection. Identify bottlenecks and performance improvement opportunities throughout the plan.
4+
5+
## Features
6+
7+
- **Color-Coded Visualization**: See key execution properties highlighted throughout the plan
8+
- **Performance Insights**: Identify bottlenecks such as lost parallelism or sort order, missing pushdown optimizations, and suboptimal operator selection
9+
- **Interactive Editing**: Edit plans directly in Excalidraw and save back to JSON
10+
- **Export & Share**: Export to PNG or SVG for documentation and presentations
11+
- **Collaboration**: Open the Excalidraw JSON in excalidraw.com for real-time collaborative editing
12+
- **Offline Support**: Works without internet connection using service workers and local storage
13+
14+
## Try It Now
15+
16+
**[🚀 Use Online App](https://nga-tran.github.io/plan-visualizer/)**
17+
18+
Simply paste your DataFusion physical execution plan and watch it transform into an interactive Excalidraw diagram.
19+
20+
![Plan Visualizer showing execution plan input and visual diagram output](PlanVisualizer.png)
21+
22+
## Powered By
23+
24+
This project is built using **[plan-viz](https://www.npmjs.com/package/plan-viz)** ([GitHub](https://github.com/NGA-TRAN/plan_viz)), an npm package that converts Apache DataFusion physical execution plans into Excalidraw-JSON. The library uses color coding to highlight key properties and propagate them throughout the plan.
25+
26+
Explore many example execution plans in the plan-viz [tests folder](https://github.com/NGA-TRAN/plan_viz/tree/master/tests) covering different DataFusion operators and patterns.
27+
28+
New to query plans? See plan-viz's [Output Analysis](https://github.com/NGA-TRAN/plan_viz#output-analysis) section for examples on how to read them and determine if the plan is optimal.
29+
30+
## Roadmap
31+
32+
- **Interactive Query Builder**: Create tables, insert data, or link to existing files
33+
- **DataFusion Integration**: Run queries and generate EXPLAIN plans directly within the application
34+
- **Enhanced Visualization**: Additional diagram styles and customization options
35+
36+
## Built With
37+
38+
This project was developed using **[SpecKit](https://github.com/DINHDUY/spec-driven-ai-dev/blob/master/docs/AI-assisted%20Development%20with%20SpecKit.md)**, a specification-driven development framework that enables AI-assisted development through structured specifications and automated planning.
39+
40+
## License
41+
42+
Licensed under the [MIT License](LICENSE).
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Specification Quality Checklist: README Documentation
2+
3+
**Purpose**: Validate specification completeness and quality before proceeding to planning
4+
**Created**: 2025-01-27
5+
**Feature**: [spec.md](../spec.md)
6+
7+
## Content Quality
8+
9+
- [x] No implementation details (languages, frameworks, APIs)
10+
- [x] Focused on user value and business needs
11+
- [x] Written for non-technical stakeholders
12+
- [x] All mandatory sections completed
13+
14+
## Requirement Completeness
15+
16+
- [x] No [NEEDS CLARIFICATION] markers remain
17+
- [x] Requirements are testable and unambiguous
18+
- [x] Success criteria are measurable
19+
- [x] Success criteria are technology-agnostic (no implementation details)
20+
- [x] All acceptance scenarios are defined
21+
- [x] Edge cases are identified
22+
- [x] Scope is clearly bounded
23+
- [x] Dependencies and assumptions identified
24+
25+
## Feature Readiness
26+
27+
- [x] All functional requirements have clear acceptance criteria
28+
- [x] User scenarios cover primary flows
29+
- [x] Feature meets measurable outcomes defined in Success Criteria
30+
- [x] No implementation details leak into specification
31+
32+
## Validation Results
33+
34+
| Check | Status | Notes |
35+
|-------|--------|-------|
36+
| Content Quality | ✅ Pass | Spec focuses on WHAT (README content), not HOW (implementation). No technical details. |
37+
| Requirement Completeness | ✅ Pass | All 8 FRs are testable and unambiguous. No clarification markers needed. |
38+
| Feature Readiness | ✅ Pass | User story covers primary flow. Success criteria are measurable and technology-agnostic. |
39+
40+
## Notes
41+
42+
- **Implementation Status**: README.md file has been created in repository root with all required content
43+
- **Content Included**:
44+
- Short description of Plan Visualizer as graphical UI
45+
- Powered by plan-viz section with link
46+
- Deployment link with invitation to try
47+
- Roadmap section mentioning table creation, data insertion, and query execution
48+
- Built with SpecKit section with link
49+
- **Additional Enhancements**: Added "Why use Plan Visualizer?" section to make deployment link more attractive and useful
50+
- Specification is ready for `/speckit.plan` or `/speckit.clarify`
51+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# API Contracts: README Documentation
2+
3+
**Feature**: 006-readme-documentation
4+
**Date**: 2025-01-27
5+
6+
## Overview
7+
8+
This feature does not involve any APIs, endpoints, or service contracts. The README.md file is a static documentation file with no programmatic interfaces.
9+
10+
## Contracts
11+
12+
N/A - No API contracts required for this feature.
13+
14+
## Notes
15+
16+
- README.md is a static markdown file
17+
- No REST endpoints, GraphQL schemas, or service interfaces are involved
18+
- No API documentation is required
19+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Data Model: README Documentation
2+
3+
**Feature**: 006-readme-documentation
4+
**Date**: 2025-01-27
5+
6+
## Overview
7+
8+
This feature does not involve any data entities or data persistence. The README.md file is a static markdown file that contains only text content and markdown formatting. No data model is required for this feature.
9+
10+
## Entities
11+
12+
N/A - No data entities involved in this feature.
13+
14+
## Notes
15+
16+
- README.md is a static text file
17+
- No database, API, or data structures are involved
18+
- Content is manually written and committed to the repository
19+
- No validation or data processing is required
20+
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Implementation Plan: README Documentation
2+
3+
**Branch**: `006-readme-documentation` | **Date**: 2025-01-27 | **Spec**: [spec.md](./spec.md)
4+
**Input**: Feature specification from `/specs/006-readme-documentation/spec.md`
5+
6+
**Note**: This template is filled in by the `/speckit.plan` command. See `.specify/templates/commands/plan.md` for the execution workflow.
7+
8+
## Summary
9+
10+
This feature adds a README.md file to the repository root that provides clear documentation about Plan Visualizer, including project description, deployment link, roadmap, and attribution to dependencies (plan-viz) and development framework (SpecKit). The README serves as the primary entry point for users discovering the project and helps establish credibility and usability.
11+
12+
## Technical Context
13+
14+
**Language/Version**: Markdown (GitHub Flavored Markdown)
15+
**Primary Dependencies**: None (plain markdown file)
16+
**Storage**: N/A (static file in repository)
17+
**Testing**: Manual review, markdown linting (optional)
18+
**Target Platform**: GitHub repository (rendered on GitHub, GitLab, and other markdown viewers)
19+
**Project Type**: Documentation file
20+
**Performance Goals**: File loads instantly, renders correctly on GitHub
21+
**Constraints**: Must be readable in under 2 minutes, concise, properly formatted markdown
22+
**Scale/Scope**: Single file (~200-300 lines), 6 required sections
23+
24+
## Constitution Check
25+
26+
*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
27+
28+
| Principle | Check | Status |
29+
|-----------|-------|--------|
30+
| I. Deep Module Architecture | N/A - Documentation file, not code | ✅ N/A |
31+
| II. Render-as-You-Fetch | N/A - Static file, no data fetching | ✅ N/A |
32+
| III. State Colocation | N/A - Static file, no state | ✅ N/A |
33+
| IV. Feature-Based Organization | N/A - Documentation at root level | ✅ N/A |
34+
| V. Logic Extraction | N/A - Documentation file, no logic | ✅ N/A |
35+
36+
**Technology Stack (Required):**
37+
- React 18+ (functional components only) ✅ N/A (documentation only)
38+
- TanStack Query v5+ for server state ✅ N/A (no server state)
39+
- Tailwind CSS or zero-runtime CSS solution ✅ N/A (markdown only)
40+
41+
**Constitution Compliance Notes:**
42+
- This feature is documentation-only and does not involve code changes
43+
- All constitution principles are N/A for static documentation files
44+
- README.md is correctly placed at repository root (standard practice)
45+
46+
## Project Structure
47+
48+
### Documentation (this feature)
49+
50+
```text
51+
specs/006-readme-documentation/
52+
├── plan.md # This file (/speckit.plan command output)
53+
├── research.md # Phase 0 output (/speckit.plan command)
54+
├── data-model.md # Phase 1 output (/speckit.plan command) - N/A (no data)
55+
├── quickstart.md # Phase 1 output (/speckit.plan command)
56+
├── contracts/ # Phase 1 output (/speckit.plan command) - N/A (no APIs)
57+
└── tasks.md # Phase 2 output (/speckit.tasks command - NOT created by /speckit.plan)
58+
```
59+
60+
### Source Code (repository root)
61+
62+
```text
63+
README.md # New file at repository root
64+
```
65+
66+
**Structure Decision**: Single markdown file at repository root. This follows GitHub standard practice where README.md serves as the project's landing page and is automatically displayed on the repository homepage.
67+
68+
## Complexity Tracking
69+
70+
> **No violations - documentation-only feature**
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Quickstart: README Documentation
2+
3+
**Feature**: 006-readme-documentation
4+
**Date**: 2025-01-27
5+
6+
## Overview
7+
8+
This quickstart guide explains how to create and maintain the README.md file for the Plan Visualizer project.
9+
10+
## Prerequisites
11+
12+
- Text editor or markdown editor
13+
- Git access to the repository
14+
- Basic understanding of Markdown syntax
15+
16+
## Implementation Steps
17+
18+
### Step 1: Create README.md File
19+
20+
Create a new file named `README.md` in the repository root directory (`/Users/hoabinhnga.tran/plan-visualizer/README.md`).
21+
22+
### Step 2: Add Required Sections
23+
24+
Include the following sections in order:
25+
26+
1. **Title and Description**
27+
- Project name as H1 heading
28+
- Brief description (1-2 sentences) explaining what Plan Visualizer is
29+
30+
2. **Features Section**
31+
- List key features using bullet points
32+
- Keep descriptions concise
33+
34+
3. **Try It Now Section**
35+
- Include deployment link: https://nga-tran.github.io/plan-visualizer/
36+
- Add call-to-action encouraging users to try it
37+
- Optionally add benefits/value proposition
38+
39+
4. **Powered By Section**
40+
- Mention plan-viz package
41+
- Link to: https://www.npmjs.com/package/plan-viz
42+
- Brief description of what plan-viz does
43+
44+
5. **Roadmap Section**
45+
- List future planned features:
46+
- Interactive Query Builder (table creation, data insertion)
47+
- DataFusion Integration (query execution, EXPLAIN plans)
48+
- Enhanced Visualization options
49+
- Keep descriptions high-level and user-focused
50+
51+
6. **Built With Section**
52+
- Mention SpecKit
53+
- Link to: https://github.com/DINHDUY/spec-driven-ai-dev/blob/master/docs/AI-assisted%20Development%20with%20SpecKit.md
54+
- Brief description of SpecKit's role
55+
56+
### Step 3: Formatting Guidelines
57+
58+
- Use GitHub Flavored Markdown (GFM)
59+
- Use proper heading hierarchy (H1 for title, H2 for sections)
60+
- Format links as `[link text](URL)`
61+
- Use bullet points for lists
62+
- Keep each section concise (2-4 sentences max)
63+
- Test all links before committing
64+
65+
### Step 4: Review and Commit
66+
67+
1. Review the README for:
68+
- Spelling and grammar
69+
- Link functionality
70+
- Markdown formatting correctness
71+
- Readability (should be readable in under 2 minutes)
72+
73+
2. Commit the file:
74+
```bash
75+
git add README.md
76+
git commit -m "Add README documentation"
77+
```
78+
79+
## Verification
80+
81+
After implementation, verify:
82+
83+
- [ ] README.md exists in repository root
84+
- [ ] All required sections are present
85+
- [ ] All links are functional
86+
- [ ] Markdown renders correctly on GitHub
87+
- [ ] Content is concise and readable
88+
- [ ] No broken links or formatting issues
89+
90+
## Maintenance
91+
92+
- Update README when:
93+
- New features are added (update Features section)
94+
- Deployment URL changes
95+
- Roadmap items are completed or changed
96+
- Dependencies change (update attribution sections)
97+
98+
## Example Structure
99+
100+
```markdown
101+
# Plan Visualizer
102+
103+
Brief description...
104+
105+
## Features
106+
107+
- Feature 1
108+
- Feature 2
109+
110+
## Try It Now
111+
112+
[🚀 Live Demo](https://nga-tran.github.io/plan-visualizer/)
113+
114+
## Powered By
115+
116+
[plan-viz](https://www.npmjs.com/package/plan-viz)
117+
118+
## Roadmap
119+
120+
- Future feature 1
121+
- Future feature 2
122+
123+
## Built With
124+
125+
[SpecKit](https://github.com/DINHDUY/spec-driven-ai-dev/blob/master/docs/AI-assisted%20Development%20with%20SpecKit.md)
126+
```
127+

0 commit comments

Comments
 (0)