# thesandeepkonda/taxfrontend architecture

> Architecture diagram of the GitHub repository thesandeepkonda/taxfrontend, 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/thesandeepkonda/taxfrontend
- Repository: https://github.com/thesandeepkonda/taxfrontend

## Overview

Metrix CRM is a role-protected operations application for managing employees, teams, client relationships, documents, and tax-work assignments. The main client workflow spans CRM and document review into preparation, estimation, payments, and e-filing; administrators also manage staffing, leave, attendance, and reporting, while users have dashboards, chat, and notifications. The route excerpt and selected component/slice excerpts support the shown routing, data-fetch, and notification links. Other listed capabilities are represented by their exact source paths, but their internal wiring is not inferred.

Main entry points: [`src/routes/AppRoutes.jsx`](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/routes/AppRoutes.jsx) (Route map), [`src/services/api.ts`](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/services/api.ts) (HTTP API client), [`src/contexts/NotificationContext.tsx`](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/contexts/NotificationContext.tsx) (Notifications), [`src/features/admin/crm/AdmivViewApprovedDocsClients.tsx`](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/features/admin/crm/AdmivViewApprovedDocsClients.tsx) (Verified client queue)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application shell"]
  node_app["React application<br/>[App.jsx]"]
  node_routes["Route map<br/>[AppRoutes.jsx]"]
  node_access["Route protection<br/>[ProtectedRoute.jsx]"]
  node_layout["Main layout<br/>[MainLayout.tsx]"]
  node_dashboards["Dashboards"]
  node_chat["Team chat"]
  node_notifications["Notifications"]
end

subgraph group_crm["CRM and documents"]
  node_crmadmin["CRM administration"]
  node_clients["Employee clients"]
  node_docreview["Client document review"]
  node_approved["Verified client queue"]
end

subgraph group_workflow["Tax work stages"]
  node_prep["Preparation work"]
  node_estimate["Estimation work"]
  node_payments["Payment work"]
  node_efiling["E-filing work"]
end

subgraph group_people["People and admin"]
  node_leave["Leave management"]
  node_adminstaff["Staff and teams"]
  node_adminops["Admin operations"]
end

subgraph group_state["State and services"]
  node_store[("Redux state<br/>[index.ts]")]
  node_crmstate["CRM data actions<br/>[adminCRMSlice.ts]"]
  node_docstate["Document client actions<br/>[docClientsSlice.ts]"]
  node_prepstate["Preparation actions<br/>[prepSlice.ts]"]
  node_notificationstate["Notification actions"]
  node_api["HTTP API client<br/>[api.ts]"]
end

node_user(("Staff user"))
node_backend[("CRM backend")]
node_eventservice["Notification event stream"]

node_user -->|"uses"| node_routes
node_app -->|"renders"| node_routes
node_routes -->|"guards"| node_access
node_access -->|"wraps"| node_layout
node_routes -->|"routes to"| node_dashboards
node_routes -->|"routes to"| node_crmadmin
node_routes -->|"routes to"| node_docreview
node_routes -->|"routes to"| node_approved
node_routes -->|"routes to"| node_prep
node_routes -->|"routes to"| node_estimate
node_routes -->|"routes to"| node_payments
node_routes -->|"routes to"| node_efiling
node_routes -->|"routes to"| node_leave
node_routes -->|"routes to"| node_adminstaff
node_routes -->|"routes to"| node_adminops
node_routes -->|"routes to"| node_chat
node_crmadmin -->|"dispatches"| node_crmstate
node_crmstate -->|"calls"| node_api
node_docreview -->|"dispatches"| node_crmstate
node_approved -->|"dispatches"| node_docstate
node_approved -->|"dispatches"| node_prepstate
node_docstate -->|"calls"| node_api
node_prepstate -->|"calls"| node_api
node_clients -->|"calls"| node_api
node_api -->|"requests"| node_backend
node_app -->|"provides"| node_notifications
node_notifications -->|"dispatches"| node_notificationstate
node_notificationstate -->|"calls"| node_api
node_notifications -->|"subscribes"| node_eventservice

click node_app "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/App.jsx"
click node_routes "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/routes/AppRoutes.jsx"
click node_access "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/routes/ProtectedRoute.jsx"
click node_layout "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/components/layout/MainLayout.tsx"
click node_dashboards "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/pages/Dashboard"
click node_crmadmin "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/admin/crm"
click node_clients "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/employeeClientSlice.ts"
click node_docreview "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/features/admin/crm/AdminViewDocsByClientID.tsx"
click node_approved "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/features/admin/crm/AdmivViewApprovedDocsClients.tsx"
click node_prep "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/preparation"
click node_estimate "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/estimation"
click node_payments "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/payments"
click node_efiling "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/efiling"
click node_leave "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/features/leave/LeaveManagement.tsx"
click node_adminstaff "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/admin/teams"
click node_adminops "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/admin"
click node_chat "https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/chat"
click node_notifications "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/contexts/NotificationContext.tsx"
click node_store "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/index.ts"
click node_crmstate "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/adminCRMSlice.ts"
click node_docstate "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/docClientsSlice.ts"
click node_prepstate "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/prepSlice.ts"
click node_notificationstate "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/notificationSlice.ts"
click node_api "https://github.com/thesandeepkonda/taxfrontend/blob/main/src/services/api.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_routes,node_access,node_layout,node_dashboards,node_chat,node_notifications,node_user toneBlue
class node_crmadmin,node_clients,node_docreview,node_approved,node_backend toneAmber
class node_prep,node_estimate,node_payments,node_efiling toneMint
class node_leave,node_adminstaff,node_adminops toneRose
class node_store,node_crmstate,node_docstate,node_prepstate,node_notificationstate,node_api,node_eventservice toneIndigo
```

## Components

### Application shell

- [React application](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/App.jsx): `src/App.jsx`
- [Route map](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/routes/AppRoutes.jsx): `src/routes/AppRoutes.jsx`
- [Route protection](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/routes/ProtectedRoute.jsx): `src/routes/ProtectedRoute.jsx`
- [Main layout](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/components/layout/MainLayout.tsx): `src/components/layout/MainLayout.tsx`
- [Dashboards](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/pages/Dashboard): `src/pages/Dashboard`
- [Team chat](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/chat): `src/features/chat`
- [Notifications](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/contexts/NotificationContext.tsx): `src/contexts/NotificationContext.tsx`

### CRM and documents

- [CRM administration](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/admin/crm): `src/features/admin/crm`
- [Employee clients](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/employeeClientSlice.ts): `src/store/slices/employeeClientSlice.ts`
- [Client document review](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/features/admin/crm/AdminViewDocsByClientID.tsx): `src/features/admin/crm/AdminViewDocsByClientID.tsx`
- [Verified client queue](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/features/admin/crm/AdmivViewApprovedDocsClients.tsx): `src/features/admin/crm/AdmivViewApprovedDocsClients.tsx`

### Tax work stages

- [Preparation work](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/preparation): `src/features/preparation`
- [Estimation work](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/estimation): `src/features/estimation`
- [Payment work](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/payments): `src/features/payments`
- [E-filing work](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/efiling): `src/features/efiling`

### People and admin

- [Leave management](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/features/leave/LeaveManagement.tsx): `src/features/leave/LeaveManagement.tsx`
- [Staff and teams](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/admin/teams): `src/features/admin/teams`
- [Admin operations](https://github.com/thesandeepkonda/taxfrontend/tree/main/src/features/admin): `src/features/admin`

### State and services

- [Redux state](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/index.ts): `src/store/index.ts`
- [CRM data actions](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/adminCRMSlice.ts): `src/store/slices/adminCRMSlice.ts`
- [Document client actions](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/docClientsSlice.ts): `src/store/slices/docClientsSlice.ts`
- [Preparation actions](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/prepSlice.ts): `src/store/slices/prepSlice.ts`
- [Notification actions](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/store/slices/notificationSlice.ts): `src/store/slices/notificationSlice.ts`
- [HTTP API client](https://github.com/thesandeepkonda/taxfrontend/blob/main/src/services/api.ts): `src/services/api.ts`

### Other components

- **Staff user**
- **CRM backend**
- **Notification event stream**

## Connections

- Staff user → Route map: uses
- React application → Route map: renders
- Route map → Route protection: guards
- Route protection → Main layout: wraps
- Route map → Dashboards: routes to
- Route map → CRM administration: routes to
- Route map → Client document review: routes to
- Route map → Verified client queue: routes to
- Route map → Preparation work: routes to
- Route map → Estimation work: routes to
- Route map → Payment work: routes to
- Route map → E-filing work: routes to
- Route map → Leave management: routes to
- Route map → Staff and teams: routes to
- Route map → Admin operations: routes to
- Route map → Team chat: routes to
- CRM administration → CRM data actions: dispatches
- CRM data actions → HTTP API client: calls
- Client document review → CRM data actions: dispatches
- Verified client queue → Document client actions: dispatches
- Verified client queue → Preparation actions: dispatches
- Document client actions → HTTP API client: calls
- Preparation actions → HTTP API client: calls
- Employee clients → HTTP API client: calls
- HTTP API client → CRM backend: requests
- React application → Notifications: provides
- Notifications → Notification actions: dispatches
- Notification actions → HTTP API client: calls
- Notifications → Notification event stream: subscribes
