← Commit history

Initial commit: app/adom-gantt

Drew Owens ·eadd85320c ·
2 files changed +174
README.mdadded+115
@@ -0,0 +1,115 @@+# adom-gantt++Interactive Gantt chart viewer for project timelines. Data-driven, dark-themed, and fully editable in the browser.++## Features++**Visual timeline** -- color-coded phase bars, diamond milestones, dependency arrows, and a live "today" marker. Date range and month count auto-computed from data.++**Click-to-edit** -- click any bar to open an inline editor with date pickers and dependency management. Drag bar edges to resize start/end dates. Drag bar body to slide dates while preserving duration.++**Multi-select** -- Ctrl+click to toggle individual items, Shift+click for range select (Windows Explorer style). Batch editor applies relative date shifts across all selected tasks without flattening dates.++**Vertical reorder** -- drag bars or labels up/down to reorder rows. Drop indicator shows insertion point. Multi-select reorder moves all selected items together.++**Dependency arrows** -- teal bezier curves with arrowheads show task relationships. Click any bar to see incoming ("needs") and outgoing ("blocks") dependencies. Add or remove dependencies inline.++**Legend filtering** -- click any phase, "Milestone", or "Dependencies" in the legend bar to toggle visibility. Dimmed items fade to 15% opacity.++**Undo** -- Ctrl+Z undoes date edits, dependency changes, drag operations, and row reorders (100-level stack).++**Import** -- JSON (native format), CSV, MS Project XML, and Jira CSV. Drag-and-drop or file picker.++**Export** -- JSON, CSV, SVG, and self-contained HTML (no server needed to view the snapshot).++**Auto-save** -- edits persist to a sidecar JSON file next to the data file. Delete the sidecar to reset.++## In action++Click a bar and the inline editor opens over the chart: date pickers for start and end, plus the incoming ("needs") and outgoing ("blocks") dependencies, each removable, with a picker to add more.++![Inline bar editor showing date pickers and dependency management](screenshots/editor.png)++The layout scales to real plans. This is the bundled SMT production line example -- 5 phases, 43 items, 8 milestones, striped bars for ongoing work:++![SMT production line plan: 5 phases, 43 items, 8 milestones](screenshots/smt-line.png)++## Quick start++```bash+node server.js --data examples/sample-product-launch.json --port 8901+```++Open `http://localhost:8901` in a browser, or point a Hydrogen webview tab at the proxy URL.++## Data file format++Create a JSON file with three sections:++```json+{+  "project": {+    "title": "My Project",+    "subtitle": "Short description"+  },+  "phases": [+    { "name": "Phase 1 — Build", "color": "#64ABFF", "start": "2026-01", "end": "2026-06" }+  ],+  "items": [+    { "type": "group", "label": "Phase 1 — Build", "phase": 0 },+    { "type": "task", "id": "t1", "name": "Task name", "start": "2026-01-15", "end": "2026-03-01", "phase": 0, "status": "planned", "description": "Details.", "deps": ["other-id"] },+    { "type": "milestone", "name": "M1: Goal reached", "date": "2026-06-01", "phase": 0, "description": "What this means." }+  ]+}+```++See [SKILL.md](SKILL.md) for the full field reference and recommended phase colors.++## Keyboard shortcuts++| Key | Action |+|-----|--------|+| Ctrl+Z | Undo |+| Esc | Clear selection, close editor |+| Ctrl+click | Toggle item in selection |+| Shift+click | Range select |++## Interactions++| Gesture | Action |+|---------|--------|+| Click bar or label | Select + open editor |+| Drag bar edge | Resize start or end date |+| Drag bar body | Move bar (preserves duration) |+| Drag vertically | Reorder rows |++## Server endpoints++| Endpoint | Method | Description |+|----------|--------|-------------|+| `/data` | GET | Current project data |+| `/state` | GET | Saved edits (sidecar) |+| `/save` | POST | Persist edits |+| `/import/json` | POST | Import native JSON |+| `/import/csv` | POST | Import CSV |+| `/import/msproject-xml` | POST | Import MS Project XML |+| `/import/jira-csv` | POST | Import Jira CSV |+| `/export/json` | GET | Export merged JSON |+| `/export/csv` | GET | Export CSV |+| `/export/svg` | GET | Export SVG |+| `/export/html` | GET | Export self-contained HTML |++## Examples++Two example datasets are included:++- `examples/sample-product-launch.json` -- 4-phase hardware product launch (26 items, 4 milestones, dependency graph)+- `examples/smt-line.json` -- 5-phase SMT production line build (43 items, 8 milestones)++## Collaboration++Each team member runs their own server instance with the same data file. Use Export (JSON) to share the current state and Import (JSON) to load a colleague's version. The data file and sidecar state file can also be committed to a shared git repo for async collaboration.++## License++Internal tool. Adom Inc.
page.jsonadded+59
@@ -0,0 +1,59 @@+{+  "slug": "adom-gantt",+  "title": "Adom Gantt",+  "type": "app",+  "version": "0.1.0",+  "description": "Interactive Gantt chart viewer for project timelines. Data-driven, dark-themed, and fully editable in the browser: drag bars to move or resize, multi-select and batch-shift dates, manage dependency arrows inline, reorder rows, filter by phase, and undo. Imports JSON, CSV, MS Project XML and Jira CSV; exports JSON, CSV, SVG and a self-contained HTML snapshot.",+  "main": "server.js",+  "bin": {+    "adom-gantt": "server.js"+  },+  "tags": [+    "gantt",+    "timeline",+    "project-management",+    "scheduling",+    "visualization",+    "cli"+  ],+  "dependencies": {},+  "discovery_triggers": [+    "show me a gantt chart",+    "open the project timeline",+    "make a gantt chart for this project",+    "view the project schedule",+    "plot our milestones on a timeline",+    "import this MS Project file",+    "export the schedule as SVG"+  ],+  "discovery_pitch": "Reach for adom-gantt when a project's phases, tasks, milestones and dependencies need to be seen and edited on a timeline rather than read as a list.",+  "sample_prompts": [+    {+      "label": "View a plan",+      "prompt": "open the SMT line plan as a gantt chart"+    },+    {+      "label": "Shift a phase",+      "prompt": "push every validation task out by two weeks on the timeline"+    },+    {+      "label": "Import",+      "prompt": "import this Jira CSV and show it as a gantt chart"+    }+  ],+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh",+    "start": "node server.js"+  },+  "hero": {+    "type": "image",+    "path": "docs/hero.png"+  },+  "visibility": "public",+  "org": "adom",+  "author": {+    "name": "Drew Owens",+    "email": "[email protected]"+  }+}\ No newline at end of file