Site Summary: JSON App

Loaded SRC_URL

https://producingtechnology.com/65-apps/mozhihao_179281_15200408_zm329_json_app.html

What the app does

The page presents itself as a multi-section productivity tool built around JSON-style data, organized into tabs/panels including a Dashboard, a Progress tab, a Tasks view, and a Templates section. The intent appears to be a lightweight personal tracker where the user can add progress entries, create tasks, and pick from a small set of templates to scaffold new items, with the dashboard summarizing everything at a glance.

Things that didn't work how I expected

Improvement prompt

My best attempt at a follow-up prompt to fix and extend the app:

Rebuild this JSON-backed productivity app as a fully working single-page app that persists all state to localStorage and survives page refresh. Specifically:

  1. Wire the Progress "Add" button. Clicking it should open an inline form (or modal) for a new progress entry with fields for title, value/percentage, date, and optional note. On submit, validate non-empty input, append the entry to the progress list, persist it, and reset the form. Show a brief success state and surface errors inline.
  2. Make tasks fully CRUD. Add a working "+ New Task" control that creates a task with editable title, status (Todo / In Progress / Done), priority, and optional due date. Tasks must be checkable, uncheckable, editable in place, reorderable, and deletable, with all changes persisted.
  3. Make templates user-extensible. Add a "+ New Template" flow that lets the user define a template name, target type (task or progress entry), and a set of default fields. Allow editing, duplicating, deleting, and importing/exporting templates as JSON. Surface "Use template" on every relevant Add flow.
  4. Make the dashboard interactive. Every summary card, count, and chart element should be a clickable target that filters or navigates into the underlying data (e.g., clicking "Tasks: 7 open" jumps to the Tasks tab pre-filtered to open tasks). Add hover/focus states and keyboard accessibility on every clickable region.
  5. Add JSON import/export. Since the app is JSON-flavored, expose a single button to export the entire state as a downloadable .json file and another to import one (with a confirmation step before overwrite).
  6. Empty, loading, and error states. When a panel has no data, show a friendly empty state with a single CTA instead of a blank area. Validate all inputs and show inline error messages instead of failing silently.
  7. Keyboard support. Enter submits the active form, Esc cancels/closes modals, and Tab order follows visual order across every panel.

Preserve the existing JSON-centric concept and overall layout — only the behavior, interactivity, and visual cohesion should change.