# zuiidea/antd-admin architecture

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

- Interactive diagram: https://gitdiagram.com/zuiidea/antd-admin
- Repository: https://github.com/zuiidea/antd-admin

## Overview

Antd Admin is both a pair of admin-app templates and a scaffolding CLI. In the app, users authenticate, enter guarded routes, and work with URL-synced user tables and CRUD actions; the templates also provide themes and mock-first development. The README documents the CLI’s template-scaffolding purpose, while the tree shows its modules; detailed CLI call wiring and most app internals were not sampled, so those links are kept conservative. Lingui is an optional variant.

Main entry points: [`packages/create/src/commands/create.ts`](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/commands/create.ts) (Create command), [`apps/basic/src/main.tsx`](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/main.tsx) (App entry), [`apps/basic/src/components/Layout/MainLayout/index.tsx`](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/components/Layout/MainLayout/index.tsx) (Admin layout), [`apps/basic/src/routes/_auth/users/index.tsx`](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/routes/_auth/users/index.tsx) (User management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Admin templates"]
  node_routes["Routes and pages"]
  node_layout["Admin layout<br/>[index.tsx]"]
  node_dashboard["Dashboard<br/>[index.tsx]"]
  node_userpage["User management<br/>[index.tsx]"]
  node_table["Table controls<br/>[index.tsx]"]
  node_urlstate["URL table state"]
  node_settings[("Theme settings<br/>[settings.ts]")]
  node_theme["Theme controls<br/>[useAppTheme.ts]"]
  node_lingui["Lingui variant"]
end

subgraph group_auth["Identity and access"]
  node_authapi["Auth API<br/>[auth.ts]"]
  node_authui["Login and registration<br/>[index.tsx]"]
  node_authstate[("Auth state<br/>[auth.ts]")]
  node_session["Session restore<br/>[session.ts]"]
  node_permissions["Permission guards<br/>[usePermission.ts]"]
end

subgraph group_data["Data and API"]
  node_crud["CRUD hooks<br/>[useResourceCRUD.ts]"]
  node_userapi["User API<br/>[user.ts]"]
  node_http["HTTP client<br/>[http.ts]"]
  node_schemas["API schemas<br/>[schemas.ts]"]
end

subgraph group_runtime["App runtime"]
  node_entry["App entry<br/>[main.tsx]"]
  node_mocks["Mock handlers<br/>[index.ts]"]
  node_worker["Mock service worker"]
end

subgraph group_scaffold["Scaffolding CLI"]
  node_cli["CLI entry<br/>[cli.ts]"]
  node_create["Create command<br/>[create.ts]"]
  node_prompts["Scaffold prompts<br/>[prompts.ts]"]
  node_examples["Template catalog<br/>[examples.ts]"]
  node_download["Template download<br/>[download.ts]"]
  node_transforms["Project transforms<br/>[run-transforms.ts]"]
  node_install["Dependency install<br/>[install.ts]"]
  node_git["Git initialization<br/>[git.ts]"]
end

node_admin(("Admin user"))
node_cliuser(("CLI user"))
node_filesystem["Generated project"]

node_admin -->|"navigates"| node_routes
node_entry -->|"mounts router"| node_routes
node_entry -->|"rehydrates"| node_authstate
node_entry -->|"rehydrates"| node_settings
node_entry -->|"restores session"| node_session
node_routes -->|"renders"| node_layout
node_routes -->|"guards access"| node_permissions
node_layout -->|"navigates"| node_dashboard
node_layout -->|"navigates"| node_userpage
node_userpage -->|"renders"| node_table
node_userpage -->|"syncs search"| node_urlstate
node_userpage -->|"uses"| node_crud
node_crud -->|"calls"| node_userapi
node_authui -->|"calls"| node_authapi
node_authapi -->|"sends requests"| node_http
node_userapi -->|"sends requests"| node_http
node_userapi -->|"uses contracts"| node_schemas
node_session -->|"fetches session"| node_authapi
node_session -->|"updates"| node_authstate
node_layout -->|"offers controls"| node_theme
node_theme -->|"reads and writes"| node_settings
node_entry -->|"starts in development"| node_worker
node_worker -->|"intercepts requests"| node_mocks
node_cliuser -->|"runs"| node_cli
node_cli -->|"dispatches"| node_create
node_create -->|"collects options"| node_prompts
node_create -->|"resolves template"| node_examples
node_create -->|"downloads template"| node_download
node_create -->|"applies transforms"| node_transforms
node_create -->|"installs dependencies"| node_install
node_create -->|"initializes repository"| node_git
node_download -->|"writes project"| node_filesystem
node_install -->|"installs in project"| node_filesystem
node_git -->|"initializes project"| node_filesystem
node_lingui -.->|"variant of"| node_entry

click node_entry "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/main.tsx"
click node_routes "https://github.com/zuiidea/antd-admin/tree/master/apps/basic/src/routes"
click node_layout "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/components/Layout/MainLayout/index.tsx"
click node_dashboard "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/routes/_auth/dashboard/index.tsx"
click node_userpage "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/routes/_auth/users/index.tsx"
click node_table "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/components/DataTable/index.tsx"
click node_urlstate "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/useUrlSearchState.ts"
click node_crud "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/useResourceCRUD.ts"
click node_userapi "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/api/user.ts"
click node_authapi "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/api/auth.ts"
click node_http "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/utils/http.ts"
click node_schemas "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/api/schemas.ts"
click node_authui "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/components/Auth/index.tsx"
click node_authstate "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/stores/auth.ts"
click node_session "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/utils/session.ts"
click node_permissions "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/usePermission.ts"
click node_settings "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/stores/settings.ts"
click node_theme "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/useAppTheme.ts"
click node_mocks "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/mocks/handlers/index.ts"
click node_worker "https://github.com/zuiidea/antd-admin/blob/master/apps/basic/public/mockServiceWorker.js"
click node_lingui "https://github.com/zuiidea/antd-admin/tree/master/apps/with-lingui/src"
click node_cli "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/cli.ts"
click node_create "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/commands/create.ts"
click node_prompts "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/prompts.ts"
click node_examples "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/examples.ts"
click node_download "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/download.ts"
click node_transforms "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/transforms/run-transforms.ts"
click node_install "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/install.ts"
click node_git "https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/git.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_routes,node_layout,node_dashboard,node_userpage,node_table,node_urlstate,node_settings,node_theme,node_lingui,node_admin,node_cliuser toneBlue
class node_authapi,node_authui,node_authstate,node_session,node_permissions toneAmber
class node_crud,node_userapi,node_http,node_schemas toneMint
class node_entry,node_mocks,node_worker toneRose
class node_cli,node_create,node_prompts,node_examples,node_download,node_transforms,node_install,node_git,node_filesystem toneIndigo
```

## Components

### Admin templates

- [Routes and pages](https://github.com/zuiidea/antd-admin/tree/master/apps/basic/src/routes): `apps/basic/src/routes`
- [Admin layout](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/components/Layout/MainLayout/index.tsx): `apps/basic/src/components/Layout/MainLayout/index.tsx`
- [Dashboard](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/routes/_auth/dashboard/index.tsx): `apps/basic/src/routes/_auth/dashboard/index.tsx`
- [User management](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/routes/_auth/users/index.tsx): `apps/basic/src/routes/_auth/users/index.tsx`
- [Table controls](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/components/DataTable/index.tsx): `apps/basic/src/components/DataTable/index.tsx`
- [URL table state](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/useUrlSearchState.ts): `apps/basic/src/hooks/useUrlSearchState.ts`
- [Theme settings](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/stores/settings.ts): `apps/basic/src/stores/settings.ts`
- [Theme controls](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/useAppTheme.ts): `apps/basic/src/hooks/useAppTheme.ts`
- [Lingui variant](https://github.com/zuiidea/antd-admin/tree/master/apps/with-lingui/src): `apps/with-lingui/src`

### Identity and access

- [Auth API](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/api/auth.ts): `apps/basic/src/api/auth.ts`
- [Login and registration](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/components/Auth/index.tsx): `apps/basic/src/components/Auth/index.tsx`
- [Auth state](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/stores/auth.ts): `apps/basic/src/stores/auth.ts`
- [Session restore](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/utils/session.ts): `apps/basic/src/utils/session.ts`
- [Permission guards](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/usePermission.ts): `apps/basic/src/hooks/usePermission.ts`

### Data and API

- [CRUD hooks](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/hooks/useResourceCRUD.ts): `apps/basic/src/hooks/useResourceCRUD.ts`
- [User API](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/api/user.ts): `apps/basic/src/api/user.ts`
- [HTTP client](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/utils/http.ts): `apps/basic/src/utils/http.ts`
- [API schemas](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/api/schemas.ts): `apps/basic/src/api/schemas.ts`

### App runtime

- [App entry](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/main.tsx): `apps/basic/src/main.tsx`
- [Mock handlers](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/src/mocks/handlers/index.ts): `apps/basic/src/mocks/handlers/index.ts`
- [Mock service worker](https://github.com/zuiidea/antd-admin/blob/master/apps/basic/public/mockServiceWorker.js): `apps/basic/public/mockServiceWorker.js`

### Scaffolding CLI

- [CLI entry](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/cli.ts): `packages/create/src/cli.ts`
- [Create command](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/commands/create.ts): `packages/create/src/commands/create.ts`
- [Scaffold prompts](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/prompts.ts): `packages/create/src/prompts.ts`
- [Template catalog](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/examples.ts): `packages/create/src/examples.ts`
- [Template download](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/download.ts): `packages/create/src/download.ts`
- [Project transforms](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/transforms/run-transforms.ts): `packages/create/src/transforms/run-transforms.ts`
- [Dependency install](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/install.ts): `packages/create/src/install.ts`
- [Git initialization](https://github.com/zuiidea/antd-admin/blob/master/packages/create/src/git.ts): `packages/create/src/git.ts`

### Other components

- **Admin user**
- **CLI user**
- **Generated project**

## Connections

- Admin user → Routes and pages: navigates
- App entry → Routes and pages: mounts router
- App entry → Auth state: rehydrates
- App entry → Theme settings: rehydrates
- App entry → Session restore: restores session
- Routes and pages → Admin layout: renders
- Routes and pages → Permission guards: guards access
- Admin layout → Dashboard: navigates
- Admin layout → User management: navigates
- User management → Table controls: renders
- User management → URL table state: syncs search
- User management → CRUD hooks: uses
- CRUD hooks → User API: calls
- Login and registration → Auth API: calls
- Auth API → HTTP client: sends requests
- User API → HTTP client: sends requests
- User API → API schemas: uses contracts
- Session restore → Auth API: fetches session
- Session restore → Auth state: updates
- Admin layout → Theme controls: offers controls
- Theme controls → Theme settings: reads and writes
- App entry → Mock service worker: starts in development
- Mock service worker → Mock handlers: intercepts requests
- CLI user → CLI entry: runs
- CLI entry → Create command: dispatches
- Create command → Scaffold prompts: collects options
- Create command → Template catalog: resolves template
- Create command → Template download: downloads template
- Create command → Project transforms: applies transforms
- Create command → Dependency install: installs dependencies
- Create command → Git initialization: initializes repository
- Template download → Generated project: writes project
- Dependency install → Generated project: installs in project
- Git initialization → Generated project: initializes project
- Lingui variant → App entry: variant of
