# jayanth-999/task-manager architecture

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

- Interactive diagram: https://gitdiagram.com/jayanth-999/task-manager
- Repository: https://github.com/jayanth-999/task-manager

## Overview

Apex Productivity is a local-first personal execution app. The main flow loads the active guest or account, rolls overdue tasks forward, and presents the selected day in the schedule/action engine; users capture and manage tasks, then use separate roadmap, habit, focus, and life-guide views. Domain services persist locally and optionally synchronize through Supabase. The graph preserves README capabilities, but several feature views and their services were not excerpted, so their internal relationships are not inferred.

Main entry points: [`src/App.tsx`](https://github.com/jayanth-999/task-manager/blob/main/src/App.tsx) (App shell), [`src/services/taskService.ts`](https://github.com/jayanth-999/task-manager/blob/main/src/services/taskService.ts) (Task operations), [`src/services`](https://github.com/jayanth-999/task-manager/tree/main/src/services) (Guide services), [`src/services/syncEngine.ts`](https://github.com/jayanth-999/task-manager/blob/main/src/services/syncEngine.ts) (Local store and sync)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["App experience"]
  node_app["App shell<br/>[App.tsx]"]
  node_today["Today engine<br/>[TodayEngine.tsx]"]
  node_task_views["Task views<br/>[TaskViews.tsx]"]
  node_task_modal["Task editor<br/>[TaskModal.tsx]"]
  node_capture["Quick capture"]
  node_onboarding["Onboarding"]
  node_settings["Settings<br/>[SettingsView.tsx]"]
  node_auth_ui["Sign-in dialog<br/>[AuthModal.tsx]"]
  node_navigation["Navigation<br/>[Sidebar.tsx]"]
end

subgraph group_planning["Planning and routines"]
  node_today_logic["Task operations<br/>[taskService.ts]"]
  node_roadmaps["Roadmaps<br/>[RoadmapsView.tsx]"]
  node_roadmap_logic["Roadmap operations<br/>[roadmapService.ts]"]
  node_habits["Habits<br/>[HabitsView.tsx]"]
  node_focus["Focus sessions<br/>[FocusView.tsx]"]
end

subgraph group_guides["Life-area guides"]
  node_learning["Learning guide"]
  node_fitness["Workout guide<br/>[WorkoutView.tsx]"]
  node_errands["Errands guide<br/>[ErrandsView.tsx]"]
  node_recipes["Recipes and groceries<br/>[RecipesView.tsx]"]
  node_investments["Investment guide<br/>[InvestmentView.tsx]"]
  node_guide_services["Guide services"]
end

subgraph group_runtime["Persistence and sync"]
  node_auth["Authentication<br/>[authService.ts]"]
  node_local_sync["Local store and sync<br/>[syncEngine.ts]"]
  node_indexeddb[("IndexedDB")]
  node_cloud_client["Supabase client<br/>[supabaseClient.ts]"]
  node_preferences["Local preferences<br/>[userPreferences.ts]"]
  node_date_utils["Date utilities<br/>[dateUtils.ts]"]
  node_domain_types["Domain models<br/>[index.ts]"]
end

node_user(("User"))
node_supabase[("Supabase")]

node_user -->|"uses"| node_app
node_app -->|"loads account"| node_auth
node_app -->|"loads and rolls over"| node_today_logic
node_app -->|"renders"| node_today
node_app -->|"renders"| node_navigation
node_app -->|"saves preferences"| node_preferences
node_app -->|"routes to"| node_task_views
node_app -->|"routes to"| node_roadmaps
node_app -->|"routes to"| node_habits
node_app -->|"routes to"| node_focus
node_app -->|"routes to"| node_learning
node_app -->|"routes to"| node_fitness
node_app -->|"routes to"| node_errands
node_app -->|"routes to"| node_recipes
node_app -->|"routes to"| node_investments
node_app -->|"renders"| node_onboarding
node_app -->|"renders"| node_settings
node_app -->|"renders"| node_auth_ui
node_today -->|"uses task operations"| node_today_logic
node_task_views -->|"uses task operations"| node_today_logic
node_task_modal -.->|"edits tasks"| node_app
node_capture -.->|"creates tasks"| node_today_logic
node_roadmaps -->|"uses roadmap operations"| node_roadmap_logic
node_task_views -.->|"queries milestones"| node_roadmap_logic
node_habits -.->|"uses habit service"| node_guide_services
node_focus -.->|"uses focus service"| node_guide_services
node_learning -.->|"uses learning service"| node_guide_services
node_fitness -->|"uses workout service"| node_guide_services
node_errands -->|"creates tasks"| node_today_logic
node_recipes -->|"uses recipe service"| node_guide_services
node_recipes -->|"creates tasks"| node_today_logic
node_investments -->|"uses investment service"| node_guide_services
node_auth_ui -->|"calls"| node_auth
node_auth -->|"authenticates with"| node_cloud_client
node_auth -->|"migrates guest data"| node_local_sync
node_today_logic -->|"reads and saves"| node_local_sync
node_roadmap_logic -->|"reads and saves"| node_local_sync
node_local_sync -->|"reads and writes"| node_indexeddb
node_local_sync -->|"queues cloud changes"| node_cloud_client
node_cloud_client -->|"connects to"| node_supabase
node_onboarding -->|"saves preferences"| node_preferences
node_settings -->|"uses"| node_preferences
node_today_logic -->|"reads schedule settings"| node_preferences
node_today -->|"formats dates"| node_date_utils
node_today_logic -->|"calculates dates"| node_date_utils

click node_app "https://github.com/jayanth-999/task-manager/blob/main/src/App.tsx"
click node_today "https://github.com/jayanth-999/task-manager/blob/main/src/components/TodayEngine.tsx"
click node_task_views "https://github.com/jayanth-999/task-manager/blob/main/src/components/TaskViews.tsx"
click node_task_modal "https://github.com/jayanth-999/task-manager/blob/main/src/components/TaskModal.tsx"
click node_capture "https://github.com/jayanth-999/task-manager/blob/main/src/components/QuickCaptureModal.tsx"
click node_onboarding "https://github.com/jayanth-999/task-manager/blob/main/src/components/OnboardingModal.tsx"
click node_settings "https://github.com/jayanth-999/task-manager/blob/main/src/components/SettingsView.tsx"
click node_auth_ui "https://github.com/jayanth-999/task-manager/blob/main/src/components/AuthModal.tsx"
click node_navigation "https://github.com/jayanth-999/task-manager/blob/main/src/components/Sidebar.tsx"
click node_today_logic "https://github.com/jayanth-999/task-manager/blob/main/src/services/taskService.ts"
click node_roadmaps "https://github.com/jayanth-999/task-manager/blob/main/src/components/RoadmapsView.tsx"
click node_roadmap_logic "https://github.com/jayanth-999/task-manager/blob/main/src/services/roadmapService.ts"
click node_habits "https://github.com/jayanth-999/task-manager/blob/main/src/components/HabitsView.tsx"
click node_focus "https://github.com/jayanth-999/task-manager/blob/main/src/components/FocusView.tsx"
click node_learning "https://github.com/jayanth-999/task-manager/blob/main/src/components/TechLearningView.tsx"
click node_fitness "https://github.com/jayanth-999/task-manager/blob/main/src/components/WorkoutView.tsx"
click node_errands "https://github.com/jayanth-999/task-manager/blob/main/src/components/ErrandsView.tsx"
click node_recipes "https://github.com/jayanth-999/task-manager/blob/main/src/components/RecipesView.tsx"
click node_investments "https://github.com/jayanth-999/task-manager/blob/main/src/components/InvestmentView.tsx"
click node_guide_services "https://github.com/jayanth-999/task-manager/tree/main/src/services"
click node_auth "https://github.com/jayanth-999/task-manager/blob/main/src/services/authService.ts"
click node_local_sync "https://github.com/jayanth-999/task-manager/blob/main/src/services/syncEngine.ts"
click node_cloud_client "https://github.com/jayanth-999/task-manager/blob/main/src/services/supabaseClient.ts"
click node_preferences "https://github.com/jayanth-999/task-manager/blob/main/src/services/userPreferences.ts"
click node_date_utils "https://github.com/jayanth-999/task-manager/blob/main/src/services/dateUtils.ts"
click node_domain_types "https://github.com/jayanth-999/task-manager/blob/main/src/types/index.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_app,node_today,node_task_views,node_task_modal,node_capture,node_onboarding,node_settings,node_auth_ui,node_navigation,node_user toneBlue
class node_today_logic,node_roadmaps,node_roadmap_logic,node_habits,node_focus,node_supabase toneAmber
class node_learning,node_fitness,node_errands,node_recipes,node_investments,node_guide_services toneMint
class node_auth,node_local_sync,node_indexeddb,node_cloud_client,node_preferences,node_date_utils,node_domain_types toneRose
```

## Components

### App experience

- [App shell](https://github.com/jayanth-999/task-manager/blob/main/src/App.tsx): `src/App.tsx`
- [Today engine](https://github.com/jayanth-999/task-manager/blob/main/src/components/TodayEngine.tsx): `src/components/TodayEngine.tsx`
- [Task views](https://github.com/jayanth-999/task-manager/blob/main/src/components/TaskViews.tsx): `src/components/TaskViews.tsx`
- [Task editor](https://github.com/jayanth-999/task-manager/blob/main/src/components/TaskModal.tsx): `src/components/TaskModal.tsx`
- [Quick capture](https://github.com/jayanth-999/task-manager/blob/main/src/components/QuickCaptureModal.tsx): `src/components/QuickCaptureModal.tsx`
- [Onboarding](https://github.com/jayanth-999/task-manager/blob/main/src/components/OnboardingModal.tsx): `src/components/OnboardingModal.tsx`
- [Settings](https://github.com/jayanth-999/task-manager/blob/main/src/components/SettingsView.tsx): `src/components/SettingsView.tsx`
- [Sign-in dialog](https://github.com/jayanth-999/task-manager/blob/main/src/components/AuthModal.tsx): `src/components/AuthModal.tsx`
- [Navigation](https://github.com/jayanth-999/task-manager/blob/main/src/components/Sidebar.tsx): `src/components/Sidebar.tsx`

### Planning and routines

- [Task operations](https://github.com/jayanth-999/task-manager/blob/main/src/services/taskService.ts): `src/services/taskService.ts`
- [Roadmaps](https://github.com/jayanth-999/task-manager/blob/main/src/components/RoadmapsView.tsx): `src/components/RoadmapsView.tsx`
- [Roadmap operations](https://github.com/jayanth-999/task-manager/blob/main/src/services/roadmapService.ts): `src/services/roadmapService.ts`
- [Habits](https://github.com/jayanth-999/task-manager/blob/main/src/components/HabitsView.tsx): `src/components/HabitsView.tsx`
- [Focus sessions](https://github.com/jayanth-999/task-manager/blob/main/src/components/FocusView.tsx): `src/components/FocusView.tsx`

### Life-area guides

- [Learning guide](https://github.com/jayanth-999/task-manager/blob/main/src/components/TechLearningView.tsx): `src/components/TechLearningView.tsx`
- [Workout guide](https://github.com/jayanth-999/task-manager/blob/main/src/components/WorkoutView.tsx): `src/components/WorkoutView.tsx`
- [Errands guide](https://github.com/jayanth-999/task-manager/blob/main/src/components/ErrandsView.tsx): `src/components/ErrandsView.tsx`
- [Recipes and groceries](https://github.com/jayanth-999/task-manager/blob/main/src/components/RecipesView.tsx): `src/components/RecipesView.tsx`
- [Investment guide](https://github.com/jayanth-999/task-manager/blob/main/src/components/InvestmentView.tsx): `src/components/InvestmentView.tsx`
- [Guide services](https://github.com/jayanth-999/task-manager/tree/main/src/services): `src/services`

### Persistence and sync

- [Authentication](https://github.com/jayanth-999/task-manager/blob/main/src/services/authService.ts): `src/services/authService.ts`
- [Local store and sync](https://github.com/jayanth-999/task-manager/blob/main/src/services/syncEngine.ts): `src/services/syncEngine.ts`
- **IndexedDB**
- [Supabase client](https://github.com/jayanth-999/task-manager/blob/main/src/services/supabaseClient.ts): `src/services/supabaseClient.ts`
- [Local preferences](https://github.com/jayanth-999/task-manager/blob/main/src/services/userPreferences.ts): `src/services/userPreferences.ts`
- [Date utilities](https://github.com/jayanth-999/task-manager/blob/main/src/services/dateUtils.ts): `src/services/dateUtils.ts`
- [Domain models](https://github.com/jayanth-999/task-manager/blob/main/src/types/index.ts): `src/types/index.ts`

### Other components

- **User**
- **Supabase**

## Connections

- User → App shell: uses (evidence: `README.md`)
- App shell → Authentication: loads account (evidence: `src/App.tsx`)
- App shell → Task operations: loads and rolls over (evidence: `src/App.tsx`)
- App shell → Today engine: renders (evidence: `src/App.tsx`)
- App shell → Navigation: renders (evidence: `src/App.tsx`)
- App shell → Local preferences: saves preferences (evidence: `src/App.tsx`)
- App shell → Task views: routes to (evidence: `src/App.tsx`)
- App shell → Roadmaps: routes to (evidence: `src/App.tsx`)
- App shell → Habits: routes to (evidence: `src/App.tsx`)
- App shell → Focus sessions: routes to (evidence: `src/App.tsx`)
- App shell → Learning guide: routes to (evidence: `src/App.tsx`)
- App shell → Workout guide: routes to (evidence: `src/App.tsx`)
- App shell → Errands guide: routes to (evidence: `src/App.tsx`)
- App shell → Recipes and groceries: routes to (evidence: `src/App.tsx`)
- App shell → Investment guide: routes to (evidence: `src/App.tsx`)
- App shell → Onboarding: renders (evidence: `src/App.tsx`)
- App shell → Settings: renders (evidence: `src/App.tsx`)
- App shell → Sign-in dialog: renders (evidence: `src/App.tsx`)
- Today engine → Task operations: uses task operations (evidence: `src/components/TodayEngine.tsx`)
- Task views → Task operations: uses task operations (evidence: `src/components/TaskViews.tsx`)
- Task editor → App shell: edits tasks (evidence: `src/App.tsx`)
- Quick capture → Task operations: creates tasks (evidence: `src/components/QuickCaptureModal.tsx`)
- Roadmaps → Roadmap operations: uses roadmap operations (evidence: `src/components/RoadmapsView.tsx`)
- Task views → Roadmap operations: queries milestones
- Habits → Guide services: uses habit service (evidence: `src/components/HabitsView.tsx`)
- Focus sessions → Guide services: uses focus service (evidence: `src/components/FocusView.tsx`)
- Learning guide → Guide services: uses learning service (evidence: `src/components/TechLearningView.tsx`)
- Workout guide → Guide services: uses workout service (evidence: `src/components/WorkoutView.tsx`)
- Errands guide → Task operations: creates tasks (evidence: `src/components/ErrandsView.tsx`)
- Recipes and groceries → Guide services: uses recipe service (evidence: `src/components/RecipesView.tsx`)
- Recipes and groceries → Task operations: creates tasks (evidence: `src/components/RecipesView.tsx`)
- Investment guide → Guide services: uses investment service (evidence: `src/components/InvestmentView.tsx`)
- Sign-in dialog → Authentication: calls (evidence: `src/components/AuthModal.tsx`)
- Authentication → Supabase client: authenticates with (evidence: `src/services/authService.ts`)
- Authentication → Local store and sync: migrates guest data (evidence: `src/services/authService.ts`)
- Task operations → Local store and sync: reads and saves (evidence: `src/services/taskService.ts`)
- Roadmap operations → Local store and sync: reads and saves (evidence: `src/services/roadmapService.ts`)
- Local store and sync → IndexedDB: reads and writes (evidence: `src/services/syncEngine.ts`)
- Local store and sync → Supabase client: queues cloud changes (evidence: `src/services/syncEngine.ts`)
- Supabase client → Supabase: connects to (evidence: `src/services/supabaseClient.ts`)
- Onboarding → Local preferences: saves preferences (evidence: `src/components/OnboardingModal.tsx`)
- Settings → Local preferences: uses (evidence: `src/components/SettingsView.tsx`)
- Task operations → Local preferences: reads schedule settings (evidence: `src/services/taskService.ts`)
- Today engine → Date utilities: formats dates (evidence: `src/components/TodayEngine.tsx`)
- Task operations → Date utilities: calculates dates (evidence: `src/services/taskService.ts`)
