# farukshihab/taskflow architecture

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

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

## Overview

This appears to be a recruitment-oriented web app combining account access, task planning, and image annotation. The likely user workflow is to sign in, manage dated tasks on a board, or create a study, upload images, and annotate them with polygons. The tree supports these product areas, while the sampled service code confirms authentication, task, and study API operations. README content is only the default Next.js template, and several UI and state files were not sampled, so links from screens to services are omitted where their callers cannot be verified.

Main entry points: [`src/services/auth.service.ts`](https://github.com/farukshihab/taskflow/blob/main/src/services/auth.service.ts) (Auth service), [`src/services/task.service.ts`](https://github.com/farukshihab/taskflow/blob/main/src/services/task.service.ts) (Task service), [`src/services/annotation.service.ts`](https://github.com/farukshihab/taskflow/blob/main/src/services/annotation.service.ts) (Annotation service), [`src/app/(auth)/login/page.tsx`](https://github.com/farukshihab/taskflow/blob/main/src/app/(auth)/login/page.tsx) (Auth screens)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Account access"]
  node_auth_routes["Auth screens<br/>[page.tsx]"]
  node_auth_forms["Auth forms<br/>[LoginForm.tsx]"]
  node_auth_service["Auth service<br/>[auth.service.ts]"]
  node_auth_state[("Auth state<br/>[auth.store.ts]")]
end

subgraph group_tasks["Task planning"]
  node_task_route["Tasks screen<br/>[page.tsx]"]
  node_task_board["Task board<br/>[Board.tsx]"]
  node_task_service["Task service<br/>[task.service.ts]"]
  node_task_state[("Task state<br/>[task.store.ts]")]
  node_task_history["Task history"]
end

subgraph group_annotation["Image annotation"]
  node_annotation_route["Annotation screen<br/>[page.tsx]"]
  node_annotation_page["Annotation workspace<br/>[AnnotationPage.tsx]"]
  node_study_tools["Study tools<br/>[StudyList.tsx]"]
  node_image_upload["Image uploader<br/>[ImageUploader.tsx]"]
  node_canvas["Polygon canvas"]
  node_annotation_service["Annotation service"]
end

subgraph group_app["App shell"]
  node_dashboard_route["Dashboard screen<br/>[layout.tsx]"]
  node_dashboard["Dashboard overview<br/>[Dashboard.tsx]"]
end

node_user(("User"))
node_api["Backend API"]

node_user -->|"opens account"| node_auth_routes
node_user -->|"opens tasks"| node_task_route
node_user -->|"opens annotator"| node_annotation_route
node_auth_service -->|"requests auth"| node_api
node_task_service -->|"requests tasks"| node_api
node_annotation_service -->|"requests studies"| node_api

click node_auth_routes "https://github.com/farukshihab/taskflow/blob/main/src/app/(auth)/login/page.tsx"
click node_auth_forms "https://github.com/farukshihab/taskflow/blob/main/src/components/auth/LoginForm.tsx"
click node_auth_service "https://github.com/farukshihab/taskflow/blob/main/src/services/auth.service.ts"
click node_auth_state "https://github.com/farukshihab/taskflow/blob/main/src/store/auth.store.ts"
click node_task_route "https://github.com/farukshihab/taskflow/blob/main/src/app/(dashboard)/tasks/page.tsx"
click node_task_board "https://github.com/farukshihab/taskflow/blob/main/src/components/tasks/Board.tsx"
click node_task_service "https://github.com/farukshihab/taskflow/blob/main/src/services/task.service.ts"
click node_task_state "https://github.com/farukshihab/taskflow/blob/main/src/store/task.store.ts"
click node_task_history "https://github.com/farukshihab/taskflow/blob/main/src/services/task-history.service.ts"
click node_dashboard_route "https://github.com/farukshihab/taskflow/blob/main/src/app/(dashboard)/layout.tsx"
click node_dashboard "https://github.com/farukshihab/taskflow/blob/main/src/components/dashboard/Dashboard.tsx"
click node_annotation_route "https://github.com/farukshihab/taskflow/blob/main/src/app/(dashboard)/annotate/page.tsx"
click node_annotation_page "https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/AnnotationPage.tsx"
click node_study_tools "https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/studies/StudyList.tsx"
click node_image_upload "https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/studies/ImageUploader.tsx"
click node_canvas "https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/canvas/AnnotationCanvas.tsx"
click node_annotation_service "https://github.com/farukshihab/taskflow/blob/main/src/services/annotation.service.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_auth_routes,node_auth_forms,node_auth_service,node_auth_state,node_user toneBlue
class node_task_route,node_task_board,node_task_service,node_task_state,node_task_history toneAmber
class node_annotation_route,node_annotation_page,node_study_tools,node_image_upload,node_canvas,node_annotation_service,node_api toneMint
class node_dashboard_route,node_dashboard toneRose
```

## Components

### Account access

- [Auth screens](https://github.com/farukshihab/taskflow/blob/main/src/app/(auth)/login/page.tsx): `src/app/(auth)/login/page.tsx`
- [Auth forms](https://github.com/farukshihab/taskflow/blob/main/src/components/auth/LoginForm.tsx): `src/components/auth/LoginForm.tsx`
- [Auth service](https://github.com/farukshihab/taskflow/blob/main/src/services/auth.service.ts): `src/services/auth.service.ts`
- [Auth state](https://github.com/farukshihab/taskflow/blob/main/src/store/auth.store.ts): `src/store/auth.store.ts`

### Task planning

- [Tasks screen](https://github.com/farukshihab/taskflow/blob/main/src/app/(dashboard)/tasks/page.tsx): `src/app/(dashboard)/tasks/page.tsx`
- [Task board](https://github.com/farukshihab/taskflow/blob/main/src/components/tasks/Board.tsx): `src/components/tasks/Board.tsx`
- [Task service](https://github.com/farukshihab/taskflow/blob/main/src/services/task.service.ts): `src/services/task.service.ts`
- [Task state](https://github.com/farukshihab/taskflow/blob/main/src/store/task.store.ts): `src/store/task.store.ts`
- [Task history](https://github.com/farukshihab/taskflow/blob/main/src/services/task-history.service.ts): `src/services/task-history.service.ts`

### Image annotation

- [Annotation screen](https://github.com/farukshihab/taskflow/blob/main/src/app/(dashboard)/annotate/page.tsx): `src/app/(dashboard)/annotate/page.tsx`
- [Annotation workspace](https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/AnnotationPage.tsx): `src/components/annotation/AnnotationPage.tsx`
- [Study tools](https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/studies/StudyList.tsx): `src/components/annotation/studies/StudyList.tsx`
- [Image uploader](https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/studies/ImageUploader.tsx): `src/components/annotation/studies/ImageUploader.tsx`
- [Polygon canvas](https://github.com/farukshihab/taskflow/blob/main/src/components/annotation/canvas/AnnotationCanvas.tsx): `src/components/annotation/canvas/AnnotationCanvas.tsx`
- [Annotation service](https://github.com/farukshihab/taskflow/blob/main/src/services/annotation.service.ts): `src/services/annotation.service.ts`

### App shell

- [Dashboard screen](https://github.com/farukshihab/taskflow/blob/main/src/app/(dashboard)/layout.tsx): `src/app/(dashboard)/layout.tsx`
- [Dashboard overview](https://github.com/farukshihab/taskflow/blob/main/src/components/dashboard/Dashboard.tsx): `src/components/dashboard/Dashboard.tsx`

### Other components

- **User**
- **Backend API**

## Connections

- User → Auth screens: opens account
- User → Tasks screen: opens tasks
- User → Annotation screen: opens annotator
- Auth service → Backend API: requests auth
- Task service → Backend API: requests tasks
- Annotation service → Backend API: requests studies
