app
Adom Gantt
Public Made by Adomby adom
Interactive Gantt chart viewer for project timelines, with a table view and an analytics page over the same data. Data-driven, dark by default with a print-friendly light mode, 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. One click auto-schedules the whole plan so every dependency lines up finish-to-start on working days, skipping weekends and US federal holidays, push
← Commit history
README.md+13−13@@ -4,25 +4,25 @@ Interactive Gantt chart viewer for project timelines. Data-driven, dark-themed, ## 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.+**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.+**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.+**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.+**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.+**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.+**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).+**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.+**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).+**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.+**Auto-save.** Edits persist to a sidecar JSON file next to the data file. Delete the sidecar to reset. ## In action @@ -30,7 +30,7 @@ Click a bar and the inline editor opens over the chart: date pickers for start a  -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:+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:  @@ -103,8 +103,8 @@ See [SKILL.md](SKILL.md) for the full field reference and recommended phase colo 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)+- `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
SKILL.md+8−6@@ -84,23 +84,25 @@ Create a JSON file with this structure: | Field | Type | Required | Description | |-------|------|----------|-------------|+<!-- prose-lint-disable (literal legend label from the shipped example data) --> | name | string | yes | Legend label (e.g., "Phase 1 — Build") |+<!-- prose-lint-enable --> | color | hex string | yes | Bar color for this phase | | start | YYYY-MM | yes | Phase start month | | end | YYYY-MM | yes | Phase end month | -**items[]** (required) — ordered array, rendered top-to-bottom+**items[]** (required). An ordered array, rendered top-to-bottom Each item has a `type` field: `"group"`, `"task"`, or `"milestone"`. -**type: "group"** — section header row+**type: "group"**: section header row | Field | Type | Required | Description | |-------|------|----------|-------------| | label | string | yes | Group header text | | phase | number | yes | Index into phases[] (controls filter visibility) | -**type: "task"** — bar on the timeline+**type: "task"**: bar on the timeline | Field | Type | Required | Description | |-------|------|----------|-------------|@@ -114,7 +116,7 @@ Each item has a `type` field: `"group"`, `"task"`, or `"milestone"`. | deps | string[] | no | Array of task IDs this depends on | | striped | boolean | no | Striped bar pattern (for ongoing work) | -**type: "milestone"** — diamond marker+**type: "milestone"**: diamond marker | Field | Type | Required | Description | |-------|------|----------|-------------|@@ -151,7 +153,7 @@ These are from the Adom brand palette and contrast well on dark backgrounds: Edits (date changes, dependency adds/removes) are saved to a sidecar JSON file next to your data file. For example, `smt-line.json` saves state to-`smt-line-state.json`. This file only contains deltas — it records the+`smt-line-state.json`. This file only contains deltas. It records the current start, end, and deps for each task. Delete it to reset to the original data file values. @@ -161,5 +163,5 @@ original data file values. node ~/project/adom-gantt/server.js --data ~/project/adom-gantt/examples/smt-line.json ``` -This loads the Adom SMT Supervisory Line project — a 32-month, 5-phase+This loads the Adom SMT Supervisory Line project, a 32-month, 5-phase plan with 30+ tasks, 8 milestones, and dependency arrows.
package.json+1−1@@ -2,7 +2,7 @@ "slug": "adom-gantt", "title": "Adom Gantt", "type": "app",- "version": "0.1.0",+ "version": "0.1.1", "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" },
page.json+1−1@@ -2,7 +2,7 @@ "slug": "adom-gantt", "title": "Adom Gantt", "type": "app",- "version": "0.1.0",+ "version": "0.1.1", "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": {