# velakurthy-bharath-chary/synctask-supabase architecture

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

- Interactive diagram: https://gitdiagram.com/velakurthy-bharath-chary/synctask-supabase
- Repository: https://github.com/velakurthy-bharath-chary/synctask-supabase

## Overview

SyncTask is a collaborative project and task manager. Users register or sign in, open or join projects, manage Kanban tasks, and view analytics; task changes are recorded and broadcast to project collaborators, with live events also feeding the notification bell. The graph follows the documented React-to-FastAPI product shape and sampled task, project, auth-service, and WebSocket behavior. Several router and page implementations were not sampled, so uncertain page-to-endpoint wiring is omitted.

Main entry points: [`backend/app/main.py`](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/main.py) (API application), [`frontend/src/App.jsx`](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/App.jsx) (App routes), [`backend/app/database.py`](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/database.py) (PostgreSQL), [`backend/app/routers/tasks.py`](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/tasks.py) (Task routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["React application"]
  node_app["App routes<br/>[App.jsx]"]
  node_authui["Auth context<br/>[AuthContext.jsx]"]
  node_projectui["Project views<br/>[ProjectView.jsx]"]
  node_dashboard["Project dashboard<br/>[Dashboard.jsx]"]
  node_analyticsui["Analytics view<br/>[Analytics.jsx]"]
  node_wsui["Live events and bell"]
end

subgraph group_api["FastAPI endpoints"]
  node_apiroot["API application<br/>[main.py]"]
  node_authroutes["Auth routes<br/>[auth.py]"]
  node_projectroutes["Project routes<br/>[projects.py]"]
  node_taskroutes["Task routes<br/>[tasks.py]"]
  node_analyticsroutes["Analytics routes<br/>[analytics.py]"]
  node_wsroutes["WebSocket route<br/>[websocket.py]"]
end

subgraph group_logic["Domain services"]
  node_authlogic["Authentication<br/>[auth_service.py]"]
  node_projectlogic["Project membership<br/>[project_service.py]"]
  node_tasklogic["Task and activity<br/>[task_service.py]"]
  node_analyticslogic["Analytics calculations"]
  node_security["JWT security<br/>[security.py]"]
end

subgraph group_state["Data and realtime"]
  node_database[("PostgreSQL<br/>[database.py]")]
  node_wsmanager["Project connection rooms<br/>[ws_manager.py]"]
end

node_member(("Collaborator"))

node_member -->|"uses"| node_app
node_app -->|"provides auth"| node_authui
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_projectui
node_app -->|"routes to"| node_analyticsui
node_projectui -->|"uses live events"| node_wsui
node_member -->|"requests"| node_apiroot
node_apiroot -->|"registers"| node_authroutes
node_apiroot -->|"registers"| node_projectroutes
node_apiroot -->|"registers"| node_taskroutes
node_apiroot -->|"registers"| node_analyticsroutes
node_apiroot -->|"registers"| node_wsroutes
node_authroutes -->|"delegates auth"| node_authlogic
node_projectroutes -->|"delegates projects"| node_projectlogic
node_taskroutes -->|"delegates tasks"| node_tasklogic
node_analyticsroutes -->|"delegates analysis"| node_analyticslogic
node_authlogic -->|"uses tokens"| node_security
node_authlogic -->|"reads and writes"| node_database
node_projectlogic -->|"reads and writes"| node_database
node_tasklogic -->|"reads and writes"| node_database
node_analyticslogic -->|"reads"| node_database
node_taskroutes -->|"broadcasts task events"| node_wsmanager
node_wsroutes -->|"manages connections"| node_wsmanager
node_wsui -->|"opens project socket"| node_wsroutes
node_wsmanager -->|"sends events"| node_wsui

click node_app "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/App.jsx"
click node_authui "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/context/AuthContext.jsx"
click node_projectui "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/pages/ProjectView.jsx"
click node_dashboard "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/pages/Dashboard.jsx"
click node_analyticsui "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/pages/Analytics.jsx"
click node_wsui "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/context/WebSocketContext.jsx"
click node_apiroot "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/main.py"
click node_authroutes "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/auth.py"
click node_projectroutes "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/projects.py"
click node_taskroutes "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/tasks.py"
click node_analyticsroutes "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/analytics.py"
click node_wsroutes "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/websocket.py"
click node_authlogic "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/auth_service.py"
click node_projectlogic "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/project_service.py"
click node_tasklogic "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/task_service.py"
click node_analyticslogic "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/analytics_service.py"
click node_security "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/core/security.py"
click node_database "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/database.py"
click node_wsmanager "https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/core/ws_manager.py"

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_authui,node_projectui,node_dashboard,node_analyticsui,node_wsui toneBlue
class node_apiroot,node_authroutes,node_projectroutes,node_taskroutes,node_analyticsroutes,node_wsroutes toneAmber
class node_authlogic,node_projectlogic,node_tasklogic,node_analyticslogic,node_security toneMint
class node_database,node_wsmanager toneRose
class node_member toneIndigo
```

## Components

### React application

- [App routes](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Auth context](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Project views](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/pages/ProjectView.jsx): `frontend/src/pages/ProjectView.jsx`
- [Project dashboard](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/pages/Dashboard.jsx): `frontend/src/pages/Dashboard.jsx`
- [Analytics view](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/pages/Analytics.jsx): `frontend/src/pages/Analytics.jsx`
- [Live events and bell](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/frontend/src/context/WebSocketContext.jsx): `frontend/src/context/WebSocketContext.jsx`

### FastAPI endpoints

- [API application](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/main.py): `backend/app/main.py`
- [Auth routes](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/auth.py): `backend/app/routers/auth.py`
- [Project routes](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/projects.py): `backend/app/routers/projects.py`
- [Task routes](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/tasks.py): `backend/app/routers/tasks.py`
- [Analytics routes](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/analytics.py): `backend/app/routers/analytics.py`
- [WebSocket route](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/routers/websocket.py): `backend/app/routers/websocket.py`

### Domain services

- [Authentication](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/auth_service.py): `backend/app/services/auth_service.py`
- [Project membership](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/project_service.py): `backend/app/services/project_service.py`
- [Task and activity](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/task_service.py): `backend/app/services/task_service.py`
- [Analytics calculations](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/services/analytics_service.py): `backend/app/services/analytics_service.py`
- [JWT security](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/core/security.py): `backend/app/core/security.py`

### Data and realtime

- [PostgreSQL](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/database.py): `backend/app/database.py`
- [Project connection rooms](https://github.com/velakurthy-bharath-chary/synctask-supabase/blob/main/backend/app/core/ws_manager.py): `backend/app/core/ws_manager.py`

### Other components

- **Collaborator**

## Connections

- Collaborator → App routes: uses
- App routes → Auth context: provides auth
- App routes → Project dashboard: routes to
- App routes → Project views: routes to
- App routes → Analytics view: routes to
- Project views → Live events and bell: uses live events
- Collaborator → API application: requests
- API application → Auth routes: registers
- API application → Project routes: registers
- API application → Task routes: registers
- API application → Analytics routes: registers
- API application → WebSocket route: registers
- Auth routes → Authentication: delegates auth
- Project routes → Project membership: delegates projects
- Task routes → Task and activity: delegates tasks
- Analytics routes → Analytics calculations: delegates analysis
- Authentication → JWT security: uses tokens
- Authentication → PostgreSQL: reads and writes
- Project membership → PostgreSQL: reads and writes
- Task and activity → PostgreSQL: reads and writes
- Analytics calculations → PostgreSQL: reads
- Task routes → Project connection rooms: broadcasts task events
- WebSocket route → Project connection rooms: manages connections
- Live events and bell → WebSocket route: opens project socket
- Project connection rooms → Live events and bell: sends events
