https://producingtechnology.com/65-apps/mozhihao_179281_15200408_zm329_json_app.html
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.
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
localStorageand survives page refresh. Specifically:
- 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.
- 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.
- 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.
- 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.
- Add JSON import/export. Since the app is JSON-flavored, expose a single button to export the entire state as a downloadable
.jsonfile and another to import one (with a confirmation step before overwrite).- 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.
- Keyboard support. Enter submits the active form,
Esccancels/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.