# priandoyo/taskflow architecture

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

- Interactive diagram: https://gitdiagram.com/priandoyo/taskflow
- Repository: https://github.com/priandoyo/taskflow

## Overview

TaskFlow is a PHP/SQLite group task tracker. Users sign in, view group-scoped dashboard summaries, find or create tasks, and open a task to update their group’s progress; status changes are recorded as history. Admins also manage accounts, roles, groups, and memberships. The graph separates page-level workflows, shared authentication/access helpers, and persistence. Relationships are grounded in the excerpts or README; the database schema and some documented capabilities are not independently inspected.

Main entry points: [`config.php`](https://github.com/priandoyo/taskflow/blob/main/config.php) (SQLite data store), [`functions.php`](https://github.com/priandoyo/taskflow/blob/main/functions.php) (Auth and access helpers), [`tasks.php`](https://github.com/priandoyo/taskflow/blob/main/tasks.php) (Task listing and editing), [`index.php`](https://github.com/priandoyo/taskflow/blob/main/index.php) (Sign-in)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and presentation"]
  node_login["Sign-in<br/>[index.php]"]
  node_shared["Auth and access helpers<br/>[functions.php]"]
end

subgraph group_work["Task coordination"]
  node_tasklist["Task listing and editing<br/>[tasks.php]"]
  node_taskdetail["Task progress and history<br/>[task.php]"]
end

subgraph group_oversight["Administration and reporting"]
  node_dashboard["Dashboard summary<br/>[dashboard.php]"]
  node_admin["User and group administration<br/>[admin.php]"]
end

subgraph group_persistence["Persistence"]
  node_database[("SQLite data store<br/>[config.php]")]
  node_schema["Task and membership schema<br/>[schema.sql]"]
end

node_user(("User"))

node_user -->|"signs in"| node_login
node_login -->|"checks account"| node_database
node_login -->|"redirects after login"| node_dashboard
node_tasklist -->|"checks access"| node_shared
node_tasklist -->|"reads and writes tasks"| node_database
node_tasklist -->|"links to details"| node_taskdetail
node_taskdetail -->|"checks access"| node_shared
node_taskdetail -->|"updates progress and history"| node_database
node_dashboard -->|"loads visible groups"| node_shared
node_dashboard -->|"queries assignment counts"| node_database
node_admin -->|"checks admin access"| node_shared
node_admin -->|"manages accounts and groups"| node_database
node_shared -->|"queries user and group access"| node_database
node_shared -->|"opens and initializes"| node_database
node_database -->|"initializes from"| node_schema

click node_login "https://github.com/priandoyo/taskflow/blob/main/index.php"
click node_shared "https://github.com/priandoyo/taskflow/blob/main/functions.php"
click node_tasklist "https://github.com/priandoyo/taskflow/blob/main/tasks.php"
click node_taskdetail "https://github.com/priandoyo/taskflow/blob/main/task.php"
click node_dashboard "https://github.com/priandoyo/taskflow/blob/main/dashboard.php"
click node_admin "https://github.com/priandoyo/taskflow/blob/main/admin.php"
click node_database "https://github.com/priandoyo/taskflow/blob/main/config.php"
click node_schema "https://github.com/priandoyo/taskflow/blob/main/schema.sql"

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_login,node_shared,node_user toneBlue
class node_tasklist,node_taskdetail toneAmber
class node_dashboard,node_admin toneMint
class node_database,node_schema toneRose
```

## Components

### Access and presentation

- [Sign-in](https://github.com/priandoyo/taskflow/blob/main/index.php): `index.php`
- [Auth and access helpers](https://github.com/priandoyo/taskflow/blob/main/functions.php): `functions.php`

### Task coordination

- [Task listing and editing](https://github.com/priandoyo/taskflow/blob/main/tasks.php): `tasks.php`
- [Task progress and history](https://github.com/priandoyo/taskflow/blob/main/task.php): `task.php`

### Administration and reporting

- [Dashboard summary](https://github.com/priandoyo/taskflow/blob/main/dashboard.php): `dashboard.php`
- [User and group administration](https://github.com/priandoyo/taskflow/blob/main/admin.php): `admin.php`

### Persistence

- [SQLite data store](https://github.com/priandoyo/taskflow/blob/main/config.php): `config.php`
- [Task and membership schema](https://github.com/priandoyo/taskflow/blob/main/schema.sql): `schema.sql`

### Other components

- **User**

## Connections

- User → Sign-in: signs in (evidence: `index.php`)
- Sign-in → SQLite data store: checks account (evidence: `index.php`)
- Sign-in → Dashboard summary: redirects after login (evidence: `index.php`)
- Task listing and editing → Auth and access helpers: checks access (evidence: `tasks.php`)
- Task listing and editing → SQLite data store: reads and writes tasks (evidence: `tasks.php`)
- Task listing and editing → Task progress and history: links to details (evidence: `tasks.php`)
- Task progress and history → Auth and access helpers: checks access (evidence: `task.php`)
- Task progress and history → SQLite data store: updates progress and history (evidence: `task.php`)
- Dashboard summary → Auth and access helpers: loads visible groups (evidence: `dashboard.php`)
- Dashboard summary → SQLite data store: queries assignment counts (evidence: `dashboard.php`)
- User and group administration → Auth and access helpers: checks admin access (evidence: `admin.php`)
- User and group administration → SQLite data store: manages accounts and groups (evidence: `admin.php`)
- Auth and access helpers → SQLite data store: queries user and group access (evidence: `functions.php`)
- Auth and access helpers → SQLite data store: opens and initializes (evidence: `config.php`)
- SQLite data store → Task and membership schema: initializes from (evidence: `config.php`)
