# sunnyimt/user-management-system architecture

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

- Interactive diagram: https://gitdiagram.com/sunnyimt/user-management-system
- Repository: https://github.com/sunnyimt/user-management-system

## Overview

This is a React and .NET user-management application with authentication and CRUD, plus document ingestion/search and chat capabilities visible in the backend source. The main user flow is login, then manage users; authenticated users can also upload PDFs, search their content, and chat with document context. The README describes CSV storage, but the sampled backend registers PostgreSQL with Entity Framework and defines document, chunk, chat, and user tables. Frontend component wiring and several backend modules were not sampled, so some documented feature links are shown only at the API boundary.

Main entry points: [`Frontend/user-management-app/src/services/api.js`](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/services/api.js) (API client), [`Backend/UserManagementAPI/Services/ChatService.cs`](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Services/ChatService.cs) (Chat service), [`Backend/UserManagementAPI/data/ApplicationDbContext.cs`](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/data/ApplicationDbContext.cs) (EF data context), [`Frontend/user-management-app/src/App.js`](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/App.js) (App shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["React interface"]
  node_app["App shell<br/>[App.js]"]
  node_login["Login UI<br/>[Login.js]"]
  node_userui["User management UI<br/>[UserManagement.js]"]
  node_uploadui["Document upload UI<br/>[DocumentUpload.js]"]
  node_chatui["Chat UI<br/>[Chat.js]"]
  node_api["API client<br/>[api.js]"]
end

subgraph group_identity["Identity and users"]
  node_auth["Auth controller<br/>[AuthController.cs]"]
  node_users["Users controller<br/>[UsersController.cs]"]
  node_usersvc["User service<br/>[UserService.cs]"]
end

subgraph group_knowledge["Documents and chat"]
  node_documents["Document controller"]
  node_docsvc["Document service<br/>[DocumentService.cs]"]
  node_chat["Chat controller<br/>[ChatController.cs]"]
  node_chatsvc["Chat service<br/>[ChatService.cs]"]
end

subgraph group_persistence["Persistence"]
  node_dbcontext["EF data context"]
  node_database[("PostgreSQL")]
end

node_person(("User"))
node_llm{{"LLM service"}}

node_person -->|"uses"| node_app
node_app -->|"shows when signed out"| node_login
node_app -->|"shows when signed in"| node_userui
node_login -->|"submits credentials"| node_api
node_userui -->|"requests user operations"| node_api
node_uploadui -->|"uploads and searches"| node_api
node_chatui -->|"sends chat requests"| node_api
node_api -->|"login request"| node_auth
node_api -->|"user requests"| node_users
node_api -->|"document requests"| node_documents
node_api -->|"chat requests"| node_chat
node_auth -->|"looks up account"| node_usersvc
node_users -->|"manages users"| node_usersvc
node_usersvc -->|"reads and writes"| node_dbcontext
node_documents -->|"handles document actions"| node_docsvc
node_docsvc -->|"stores and searches"| node_dbcontext
node_chat -->|"sends messages and history"| node_chatsvc
node_chatsvc -->|"gets document context"| node_docsvc
node_chatsvc -->|"stores and reads chat"| node_dbcontext
node_chatsvc -.->|"requests responses"| node_llm
node_dbcontext -->|"queries and persists"| node_database

click node_app "https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/App.js"
click node_login "https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/Login.js"
click node_userui "https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/UserManagement.js"
click node_uploadui "https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/DocumentUpload.js"
click node_chatui "https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/Chat.js"
click node_api "https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/services/api.js"
click node_auth "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/AuthController.cs"
click node_users "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/UsersController.cs"
click node_usersvc "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Services/UserService.cs"
click node_documents "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/DocumentController.cs"
click node_docsvc "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Services/DocumentService.cs"
click node_chat "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/ChatController.cs"
click node_chatsvc "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Services/ChatService.cs"
click node_dbcontext "https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/data/ApplicationDbContext.cs"

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_login,node_userui,node_uploadui,node_chatui,node_api,node_person toneBlue
class node_auth,node_users,node_usersvc toneAmber
class node_documents,node_docsvc,node_chat,node_chatsvc toneMint
class node_dbcontext,node_database toneRose
class node_llm toneIndigo
```

## Components

### React interface

- [App shell](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/App.js): `Frontend/user-management-app/src/App.js`
- [Login UI](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/Login.js): `Frontend/user-management-app/src/components/Login.js`
- [User management UI](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/UserManagement.js): `Frontend/user-management-app/src/components/UserManagement.js`
- [Document upload UI](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/DocumentUpload.js): `Frontend/user-management-app/src/components/DocumentUpload.js`
- [Chat UI](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/components/Chat.js): `Frontend/user-management-app/src/components/Chat.js`
- [API client](https://github.com/sunnyimt/user-management-system/blob/main/Frontend/user-management-app/src/services/api.js): `Frontend/user-management-app/src/services/api.js`

### Identity and users

- [Auth controller](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/AuthController.cs): `Backend/UserManagementAPI/Controllers/AuthController.cs`
- [Users controller](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/UsersController.cs): `Backend/UserManagementAPI/Controllers/UsersController.cs`
- [User service](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Services/UserService.cs): `Backend/UserManagementAPI/Services/UserService.cs`

### Documents and chat

- [Document controller](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/DocumentController.cs): `Backend/UserManagementAPI/Controllers/DocumentController.cs`
- [Document service](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Services/DocumentService.cs): `Backend/UserManagementAPI/Services/DocumentService.cs`
- [Chat controller](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Controllers/ChatController.cs): `Backend/UserManagementAPI/Controllers/ChatController.cs`
- [Chat service](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/Services/ChatService.cs): `Backend/UserManagementAPI/Services/ChatService.cs`

### Persistence

- [EF data context](https://github.com/sunnyimt/user-management-system/blob/main/Backend/UserManagementAPI/data/ApplicationDbContext.cs): `Backend/UserManagementAPI/data/ApplicationDbContext.cs`
- **PostgreSQL**

### Other components

- **User**
- **LLM service**

## Connections

- User → App shell: uses
- App shell → Login UI: shows when signed out
- App shell → User management UI: shows when signed in
- Login UI → API client: submits credentials
- User management UI → API client: requests user operations
- Document upload UI → API client: uploads and searches
- Chat UI → API client: sends chat requests
- API client → Auth controller: login request
- API client → Users controller: user requests
- API client → Document controller: document requests
- API client → Chat controller: chat requests
- Auth controller → User service: looks up account
- Users controller → User service: manages users
- User service → EF data context: reads and writes
- Document controller → Document service: handles document actions
- Document service → EF data context: stores and searches
- Chat controller → Chat service: sends messages and history
- Chat service → Document service: gets document context
- Chat service → EF data context: stores and reads chat
- Chat service → LLM service: requests responses
- EF data context → PostgreSQL: queries and persists
