# bgvinay7/insurance-crm-ui architecture

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

- Interactive diagram: https://gitdiagram.com/bgvinay7/insurance-crm-ui
- Repository: https://github.com/bgvinay7/insurance-crm-ui

## Overview

This repository is a React/TypeScript insurance CRM interface. Users sign in, enter a protected super-admin area, view a dashboard, and manage companies by opening the company list or submitting a new-company form. The sampled dashboard uses hard-coded summary data; company listing behavior and layout internals were not sampled, so their internal wiring is not inferred.

Main entry points: [`src/routes/AppRoutes.tsx`](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/routes/AppRoutes.tsx) (Route selection), [`src/main.tsx`](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/main.tsx) (React entry), [`src/pages/auth/Login.tsx`](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/auth/Login.tsx) (Login form), [`src/context/AuthProvider.tsx`](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/context/AuthProvider.tsx) (Auth state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application shell"]
  node_mount["React entry<br/>[main.tsx]"]
  node_app_component["App<br/>[App.tsx]"]
  node_routes["Route selection<br/>[AppRoutes.tsx]"]
  node_layout["Dashboard layout"]
end

subgraph group_identity["Authentication"]
  node_login_page["Login form<br/>[Login.tsx]"]
  node_auth_provider["Auth state<br/>[AuthProvider.tsx]"]
  node_auth_hook["Auth access<br/>[useAuth.ts]"]
  node_auth_context["Auth context<br/>[AuthContext.ts]"]
end

subgraph group_admin["Super-admin workspace"]
  node_dashboard["Dashboard<br/>[Dashboard.tsx]"]
  node_sidebar["Navigation sidebar<br/>[Sidebar.tsx]"]
  node_company_list["Company list<br/>[CompanyList.tsx]"]
  node_company_form["Create company<br/>[CreateCompany.tsx]"]
end

subgraph group_integration["Backend integration"]
  node_auth_service["Login service<br/>[authService.ts]"]
  node_api_client["API client<br/>[api.ts]"]
  node_company_service["Company service<br/>[companyService.ts]"]
end

node_user(("User"))
node_backend[("CRM backend")]

node_user -->|"opens app"| node_mount
node_mount -->|"provides auth"| node_auth_provider
node_mount -->|"renders"| node_app_component
node_app_component -->|"renders routes"| node_routes
node_routes -->|"routes login"| node_login_page
node_routes -->|"checks access"| node_auth_hook
node_auth_hook -->|"reads context"| node_auth_context
node_auth_provider -->|"provides state"| node_auth_context
node_login_page -->|"submits credentials"| node_auth_service
node_auth_service -->|"posts login"| node_api_client
node_api_client -->|"sends request"| node_backend
node_login_page -->|"stores login"| node_auth_provider
node_routes -->|"wraps protected pages"| node_layout
node_routes -->|"routes dashboard"| node_dashboard
node_routes -->|"routes companies"| node_company_list
node_routes -->|"routes creation"| node_company_form
node_user -->|"selects navigation"| node_sidebar
node_company_form -->|"submits company"| node_company_service
node_company_service -->|"posts company"| node_api_client

click node_mount "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/main.tsx"
click node_app_component "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/App.tsx"
click node_routes "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/routes/AppRoutes.tsx"
click node_layout "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/components/layout/DashboardLayout.tsx"
click node_login_page "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/auth/Login.tsx"
click node_auth_provider "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/context/AuthProvider.tsx"
click node_auth_hook "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/context/useAuth.ts"
click node_auth_context "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/context/AuthContext.ts"
click node_auth_service "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/services/authService.ts"
click node_api_client "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/services/api.ts"
click node_dashboard "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/super-admin/Dashboard.tsx"
click node_sidebar "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/components/layout/Sidebar.tsx"
click node_company_list "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/super-admin/companies/CompanyList.tsx"
click node_company_form "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/super-admin/companies/CreateCompany.tsx"
click node_company_service "https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/services/companyService.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_mount,node_app_component,node_routes,node_layout,node_user toneBlue
class node_login_page,node_auth_provider,node_auth_hook,node_auth_context,node_backend toneAmber
class node_dashboard,node_sidebar,node_company_list,node_company_form toneMint
class node_auth_service,node_api_client,node_company_service toneRose
```

## Components

### Application shell

- [React entry](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/main.tsx): `src/main.tsx`
- [App](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/App.tsx): `src/App.tsx`
- [Route selection](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/routes/AppRoutes.tsx): `src/routes/AppRoutes.tsx`
- [Dashboard layout](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/components/layout/DashboardLayout.tsx): `src/components/layout/DashboardLayout.tsx`

### Authentication

- [Login form](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/auth/Login.tsx): `src/pages/auth/Login.tsx`
- [Auth state](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/context/AuthProvider.tsx): `src/context/AuthProvider.tsx`
- [Auth access](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/context/useAuth.ts): `src/context/useAuth.ts`
- [Auth context](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/context/AuthContext.ts): `src/context/AuthContext.ts`

### Super-admin workspace

- [Dashboard](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/super-admin/Dashboard.tsx): `src/pages/super-admin/Dashboard.tsx`
- [Navigation sidebar](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/components/layout/Sidebar.tsx): `src/components/layout/Sidebar.tsx`
- [Company list](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/super-admin/companies/CompanyList.tsx): `src/pages/super-admin/companies/CompanyList.tsx`
- [Create company](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/pages/super-admin/companies/CreateCompany.tsx): `src/pages/super-admin/companies/CreateCompany.tsx`

### Backend integration

- [Login service](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/services/authService.ts): `src/services/authService.ts`
- [API client](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/services/api.ts): `src/services/api.ts`
- [Company service](https://github.com/bgvinay7/insurance-crm-ui/blob/main/src/services/companyService.ts): `src/services/companyService.ts`

### Other components

- **User**
- **CRM backend**

## Connections

- User → React entry: opens app
- React entry → Auth state: provides auth
- React entry → App: renders
- App → Route selection: renders routes
- Route selection → Login form: routes login
- Route selection → Auth access: checks access
- Auth access → Auth context: reads context
- Auth state → Auth context: provides state
- Login form → Login service: submits credentials
- Login service → API client: posts login
- API client → CRM backend: sends request
- Login form → Auth state: stores login
- Route selection → Dashboard layout: wraps protected pages
- Route selection → Dashboard: routes dashboard
- Route selection → Company list: routes companies
- Route selection → Create company: routes creation
- User → Navigation sidebar: selects navigation
- Create company → Company service: submits company
- Company service → API client: posts company
