# anusaini-12/task-flow-pro architecture

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

- Interactive diagram: https://gitdiagram.com/anusaini-12/task-flow-pro
- Repository: https://github.com/anusaini-12/task-flow-pro

## Overview

TaskFlow Pro is a web task-management app. Users sign in, create and organize dated, prioritized tasks in Kanban or list views, then review productivity analytics and due-date notifications. The sampled server actions authenticate task operations and persist them through Drizzle; the tree and README also identify settings and dashboard capabilities. Some page-to-component and analytics/notification data wiring is not shown in the excerpts, so those links are left unspecified.

Main entry points: [`app/components/auth/AuthForm.tsx`](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/auth/AuthForm.tsx) (Auth form), [`app/lib/auth.ts`](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/auth.ts) (Auth configuration), [`app/lib/actions/tasks.ts`](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/actions/tasks.ts) (Task actions), [`app/db/index.ts`](https://github.com/anusaini-12/task-flow-pro/blob/main/app/db/index.ts) (Drizzle database client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["App experience"]
  node_marketing["Homepage<br/>[page.tsx]"]
  node_login["Login page<br/>[page.tsx]"]
  node_signup["Signup page<br/>[page.tsx]"]
  node_authform["Auth form<br/>[AuthForm.tsx]"]
  node_dashboard["Dashboard<br/>[page.tsx]"]
  node_mytasks["My tasks<br/>[page.tsx]"]
  node_settings["Settings<br/>[page.tsx]"]
end

subgraph group_identity["Authentication"]
  node_authform_client["Auth client<br/>[auth-client.ts]"]
  node_auth_route["Auth endpoint<br/>[route.ts]"]
  node_auth_config["Auth configuration<br/>[auth.ts]"]
end

subgraph group_tasks["Task workflow"]
  node_kanban["Kanban board<br/>[KanbanBoard.tsx]"]
  node_taskcard["Task card<br/>[TaskCard.tsx]"]
  node_taskcolumn["Task column<br/>[TaskColumn.tsx]"]
  node_taskmodal["Task editor<br/>[TaskModal.tsx]"]
  node_tasklist["Task list<br/>[TaskListView.tsx]"]
  node_actions["Task actions<br/>[tasks.ts]"]
  node_tasktypes["Task types<br/>[index.ts]"]
end

subgraph group_insights["Insights and alerts"]
  node_analytics_page["Analytics page<br/>[page.tsx]"]
  node_stats["Productivity stats"]
  node_analytics["Analytics logic<br/>[analytics.ts]"]
  node_notifications_page["Notifications page<br/>[page.tsx]"]
  node_notification_panel["Notification panel"]
  node_notifications["Notification logic<br/>[notifications.ts]"]
end

subgraph group_platform["Services and data"]
  node_ai_route["Task improvement endpoint<br/>[route.ts]"]
  node_gemini["Gemini integration<br/>[gemini.ts]"]
  node_db["Drizzle database client<br/>[index.ts]"]
  node_schema["Database schema<br/>[schema.ts]"]
end

node_user(("User"))
node_google{{"Google sign-in"}}
node_gemini_service{{"Google Gemini"}}
node_postgres[("PostgreSQL")]

node_user -->|"visits"| node_marketing
node_user -->|"opens"| node_login
node_user -->|"opens"| node_signup
node_login -->|"renders"| node_authform
node_signup -->|"renders"| node_authform
node_authform -->|"submits credentials"| node_authform_client
node_authform -.->|"starts Google sign-in"| node_authform_client
node_authform_client -->|"calls auth API"| node_auth_route
node_auth_route -->|"dispatches"| node_auth_config
node_auth_config -->|"uses adapter"| node_db
node_auth_config -.->|"configures provider"| node_google
node_user -->|"opens workspace"| node_dashboard
node_user -->|"opens tasks"| node_mytasks
node_user -->|"opens settings"| node_settings
node_user -->|"opens insights"| node_analytics_page
node_user -->|"opens alerts"| node_notifications_page
node_taskmodal -->|"creates or updates"| node_actions
node_taskmodal -->|"deletes"| node_actions
node_kanban -->|"displays"| node_taskcard
node_kanban -->|"organizes"| node_taskcolumn
node_taskmodal -->|"requests improvement"| node_ai_route
node_ai_route -->|"calls"| node_gemini
node_gemini -->|"generates text"| node_gemini_service
node_actions -->|"checks session"| node_auth_config
node_actions -->|"reads and writes tasks"| node_db
node_db -->|"uses schema"| node_schema
node_db -->|"queries"| node_postgres

click node_marketing "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(marketing)/homepage/page.tsx"
click node_login "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(auth)/login/page.tsx"
click node_signup "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(auth)/signup/page.tsx"
click node_authform "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/auth/AuthForm.tsx"
click node_dashboard "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/dashboard/page.tsx"
click node_mytasks "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/my-tasks/page.tsx"
click node_settings "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/settings/page.tsx"
click node_kanban "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/KanbanBoard.tsx"
click node_taskcard "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/TaskCard.tsx"
click node_taskcolumn "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/TaskColumn.tsx"
click node_taskmodal "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/TaskModal.tsx"
click node_tasklist "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/tasks/TaskListView.tsx"
click node_actions "https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/actions/tasks.ts"
click node_tasktypes "https://github.com/anusaini-12/task-flow-pro/blob/main/app/types/index.ts"
click node_analytics_page "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/analytics/page.tsx"
click node_stats "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/dashboard/ProductivityStats.tsx"
click node_analytics "https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/analytics.ts"
click node_notifications_page "https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/notifications/page.tsx"
click node_notification_panel "https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/notifications/NotificationPanel.tsx"
click node_notifications "https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/notifications.ts"
click node_authform_client "https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/auth-client.ts"
click node_auth_route "https://github.com/anusaini-12/task-flow-pro/blob/main/app/api/auth/%5B...all%5D/route.ts"
click node_auth_config "https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/auth.ts"
click node_ai_route "https://github.com/anusaini-12/task-flow-pro/blob/main/app/api/ai/improve-task/route.ts"
click node_gemini "https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/ai/gemini.ts"
click node_db "https://github.com/anusaini-12/task-flow-pro/blob/main/app/db/index.ts"
click node_schema "https://github.com/anusaini-12/task-flow-pro/blob/main/app/db/schema.ts"

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_marketing,node_login,node_signup,node_authform,node_dashboard,node_mytasks,node_settings,node_user toneBlue
class node_authform_client,node_auth_route,node_auth_config,node_postgres toneAmber
class node_kanban,node_taskcard,node_taskcolumn,node_taskmodal,node_tasklist,node_actions,node_tasktypes toneMint
class node_analytics_page,node_stats,node_analytics,node_notifications_page,node_notification_panel,node_notifications toneRose
class node_ai_route,node_gemini,node_db,node_schema,node_google,node_gemini_service toneIndigo
```

## Components

### App experience

- [Homepage](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(marketing)/homepage/page.tsx): `app/(marketing)/homepage/page.tsx`
- [Login page](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(auth)/login/page.tsx): `app/(auth)/login/page.tsx`
- [Signup page](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(auth)/signup/page.tsx): `app/(auth)/signup/page.tsx`
- [Auth form](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/auth/AuthForm.tsx): `app/components/auth/AuthForm.tsx`
- [Dashboard](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/dashboard/page.tsx): `app/(dashboard)/dashboard/page.tsx`
- [My tasks](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/my-tasks/page.tsx): `app/(dashboard)/my-tasks/page.tsx`
- [Settings](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/settings/page.tsx): `app/(dashboard)/settings/page.tsx`

### Authentication

- [Auth client](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/auth-client.ts): `app/lib/auth-client.ts`
- [Auth endpoint](https://github.com/anusaini-12/task-flow-pro/blob/main/app/api/auth/%5B...all%5D/route.ts): `app/api/auth/[...all]/route.ts`
- [Auth configuration](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/auth.ts): `app/lib/auth.ts`

### Task workflow

- [Kanban board](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/KanbanBoard.tsx): `app/components/kanban/KanbanBoard.tsx`
- [Task card](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/TaskCard.tsx): `app/components/kanban/TaskCard.tsx`
- [Task column](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/TaskColumn.tsx): `app/components/kanban/TaskColumn.tsx`
- [Task editor](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/kanban/TaskModal.tsx): `app/components/kanban/TaskModal.tsx`
- [Task list](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/tasks/TaskListView.tsx): `app/components/tasks/TaskListView.tsx`
- [Task actions](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/actions/tasks.ts): `app/lib/actions/tasks.ts`
- [Task types](https://github.com/anusaini-12/task-flow-pro/blob/main/app/types/index.ts): `app/types/index.ts`

### Insights and alerts

- [Analytics page](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/analytics/page.tsx): `app/(dashboard)/analytics/page.tsx`
- [Productivity stats](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/dashboard/ProductivityStats.tsx): `app/components/dashboard/ProductivityStats.tsx`
- [Analytics logic](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/analytics.ts): `app/lib/analytics.ts`
- [Notifications page](https://github.com/anusaini-12/task-flow-pro/blob/main/app/(dashboard)/notifications/page.tsx): `app/(dashboard)/notifications/page.tsx`
- [Notification panel](https://github.com/anusaini-12/task-flow-pro/blob/main/app/components/notifications/NotificationPanel.tsx): `app/components/notifications/NotificationPanel.tsx`
- [Notification logic](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/notifications.ts): `app/lib/notifications.ts`

### Services and data

- [Task improvement endpoint](https://github.com/anusaini-12/task-flow-pro/blob/main/app/api/ai/improve-task/route.ts): `app/api/ai/improve-task/route.ts`
- [Gemini integration](https://github.com/anusaini-12/task-flow-pro/blob/main/app/lib/ai/gemini.ts): `app/lib/ai/gemini.ts`
- [Drizzle database client](https://github.com/anusaini-12/task-flow-pro/blob/main/app/db/index.ts): `app/db/index.ts`
- [Database schema](https://github.com/anusaini-12/task-flow-pro/blob/main/app/db/schema.ts): `app/db/schema.ts`

### Other components

- **User**
- **Google sign-in**
- **Google Gemini**
- **PostgreSQL**

## Connections

- User → Homepage: visits
- User → Login page: opens
- User → Signup page: opens
- Login page → Auth form: renders
- Signup page → Auth form: renders
- Auth form → Auth client: submits credentials
- Auth form → Auth client: starts Google sign-in
- Auth client → Auth endpoint: calls auth API
- Auth endpoint → Auth configuration: dispatches
- Auth configuration → Drizzle database client: uses adapter
- Auth configuration → Google sign-in: configures provider
- User → Dashboard: opens workspace
- User → My tasks: opens tasks
- User → Settings: opens settings
- User → Analytics page: opens insights
- User → Notifications page: opens alerts
- Task editor → Task actions: creates or updates
- Task editor → Task actions: deletes
- Kanban board → Task card: displays
- Kanban board → Task column: organizes
- Task editor → Task improvement endpoint: requests improvement
- Task improvement endpoint → Gemini integration: calls
- Gemini integration → Google Gemini: generates text
- Task actions → Auth configuration: checks session
- Task actions → Drizzle database client: reads and writes tasks
- Drizzle database client → Database schema: uses schema
- Drizzle database client → PostgreSQL: queries
