# dannyjimenez98/task-tracker architecture

> Architecture diagram of the GitHub repository dannyjimenez98/task-tracker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dannyjimenez98/task-tracker
- Repository: https://github.com/dannyjimenez98/task-tracker

## Overview

This is a local task-tracking command-line application. The user supplies a subcommand; the executable loads the JSON task list, dispatches the command, and persists changes except for `list`. Commands add, delete, edit, and change task status; listing validates a status filter and prints matching tasks. Task records hold IDs, descriptions, statuses, and timestamps, with custom JSON timestamp formatting. The README is empty, so the workflow and capabilities here are based on the sampled source; no external service is evident.

Main entry points: [`cmd/task-cli/main.go`](https://github.com/dannyjimenez98/task-tracker/blob/main/cmd/task-cli/main.go) (Executable entry), [`internal/cli/cli.go`](https://github.com/dannyjimenez98/task-tracker/blob/main/internal/cli/cli.go) (Command dispatch), [`internal/task/actions.go`](https://github.com/dannyjimenez98/task-tracker/blob/main/internal/task/actions.go) (Task operations), [`tasklist.json`](https://github.com/dannyjimenez98/task-tracker/blob/main/tasklist.json) (Task list JSON)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI runtime"]
  node_entry["Executable entry<br/>[main.go]"]
  node_commands["Command dispatch<br/>[cli.go]"]
end

subgraph group_domain["Task domain"]
  node_actions["Task operations<br/>[actions.go]"]
  node_records["Task records<br/>[task.go]"]
end

subgraph group_persistence["Local persistence"]
  node_taskfile[("Task list JSON<br/>[tasklist.json]")]
end

node_user(("CLI user"))
node_terminal(("Terminal output"))

node_user -->|"invokes"| node_entry
node_entry -->|"reads JSON"| node_taskfile
node_entry -->|"dispatches command"| node_commands
node_commands -->|"calls operation"| node_actions
node_actions -->|"prints list"| node_terminal
node_entry -->|"writes changes"| node_taskfile

click node_entry "https://github.com/dannyjimenez98/task-tracker/blob/main/cmd/task-cli/main.go"
click node_commands "https://github.com/dannyjimenez98/task-tracker/blob/main/internal/cli/cli.go"
click node_actions "https://github.com/dannyjimenez98/task-tracker/blob/main/internal/task/actions.go"
click node_records "https://github.com/dannyjimenez98/task-tracker/blob/main/internal/task/task.go"
click node_taskfile "https://github.com/dannyjimenez98/task-tracker/blob/main/tasklist.json"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_commands,node_user toneBlue
class node_actions,node_records toneAmber
class node_taskfile toneMint
class node_terminal toneIndigo
```

## Components

### CLI runtime

- [Executable entry](https://github.com/dannyjimenez98/task-tracker/blob/main/cmd/task-cli/main.go): `cmd/task-cli/main.go`
- [Command dispatch](https://github.com/dannyjimenez98/task-tracker/blob/main/internal/cli/cli.go): `internal/cli/cli.go`

### Task domain

- [Task operations](https://github.com/dannyjimenez98/task-tracker/blob/main/internal/task/actions.go): `internal/task/actions.go`
- [Task records](https://github.com/dannyjimenez98/task-tracker/blob/main/internal/task/task.go): `internal/task/task.go`

### Local persistence

- [Task list JSON](https://github.com/dannyjimenez98/task-tracker/blob/main/tasklist.json): `tasklist.json`

### Other components

- **CLI user**
- **Terminal output**

## Connections

- CLI user → Executable entry: invokes
- Executable entry → Task list JSON: reads JSON
- Executable entry → Command dispatch: dispatches command
- Command dispatch → Task operations: calls operation
- Task operations → Terminal output: prints list
- Executable entry → Task list JSON: writes changes
