# mahesh86400/user-management-system architecture

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

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

## Overview

This is a small Express/EJS user-management application. A browser requests the home page or user CRUD routes; handlers in `index.js` query MySQL and render the corresponding EJS pages or redirect after mutations. The README documents the full route set and CRUD capabilities. The source excerpt shows database setup, SQL operations, and rendering, but not the templates’ contents, form wiring, or CSS behavior; those relationships are therefore not inferred beyond documented routes and visible render calls.

Main entry points: [`index.js`](https://github.com/mahesh86400/user-management-system/blob/main/index.js) (Edit user routes), [`views/home.ejs`](https://github.com/mahesh86400/user-management-system/blob/main/views/home.ejs) (Home view), [`views/users.ejs`](https://github.com/mahesh86400/user-management-system/blob/main/views/users.ejs) (Users view), [`views/new.ejs`](https://github.com/mahesh86400/user-management-system/blob/main/views/new.ejs) (New user view)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routes["Request handlers"]
  node_home_route["Home route<br/>[index.js]"]
  node_list_route["User list route<br/>[index.js]"]
  node_create_routes["Create user routes<br/>[index.js]"]
  node_detail_route["User detail route<br/>[index.js]"]
  node_edit_routes["Edit user routes<br/>[index.js]"]
  node_delete_route["Delete user route<br/>[index.js]"]
end

subgraph group_views["Rendered interface"]
  node_home_view["Home view<br/>[home.ejs]"]
  node_list_view["Users view<br/>[users.ejs]"]
  node_new_view["New user view<br/>[new.ejs]"]
  node_detail_view["User detail view<br/>[detail.ejs]"]
  node_edit_view["Edit user view<br/>[edit.ejs]"]
end

subgraph group_assets["Static assets"]
  node_styles["Page styles"]
end

node_browser(("Browser"))
node_mysql[("MySQL users")]

node_browser -->|"requests GET /"| node_home_route
node_browser -->|"requests users"| node_list_route
node_browser -->|"submits create"| node_create_routes
node_browser -->|"requests detail"| node_detail_route
node_browser -->|"requests edit"| node_edit_routes
node_browser -->|"submits delete"| node_delete_route
node_home_route -->|"counts users"| node_mysql
node_mysql -->|"returns count"| node_home_route
node_home_route -->|"renders home"| node_home_view
node_list_route -->|"selects users"| node_mysql
node_mysql -->|"returns rows"| node_list_route
node_list_route -->|"renders list"| node_list_view
node_create_routes -->|"inserts user"| node_mysql
node_create_routes -->|"redirects to list"| node_list_route
node_create_routes -->|"renders form"| node_new_view
node_detail_route -->|"selects user"| node_mysql
node_mysql -->|"returns row"| node_detail_route
node_detail_route -->|"renders detail"| node_detail_view
node_edit_routes -->|"selects user"| node_mysql
node_mysql -->|"returns row"| node_edit_routes
node_edit_routes -->|"renders form"| node_edit_view
node_edit_routes -->|"updates user"| node_mysql
node_edit_routes -->|"redirects to detail"| node_detail_route
node_delete_route -->|"deletes user"| node_mysql
node_delete_route -->|"redirects to list"| node_list_route
node_browser -->|"loads static assets"| node_styles

click node_home_route "https://github.com/mahesh86400/user-management-system/blob/main/index.js"
click node_list_route "https://github.com/mahesh86400/user-management-system/blob/main/index.js"
click node_create_routes "https://github.com/mahesh86400/user-management-system/blob/main/index.js"
click node_detail_route "https://github.com/mahesh86400/user-management-system/blob/main/index.js"
click node_edit_routes "https://github.com/mahesh86400/user-management-system/blob/main/index.js"
click node_delete_route "https://github.com/mahesh86400/user-management-system/blob/main/index.js"
click node_home_view "https://github.com/mahesh86400/user-management-system/blob/main/views/home.ejs"
click node_list_view "https://github.com/mahesh86400/user-management-system/blob/main/views/users.ejs"
click node_new_view "https://github.com/mahesh86400/user-management-system/blob/main/views/new.ejs"
click node_detail_view "https://github.com/mahesh86400/user-management-system/blob/main/views/detail.ejs"
click node_edit_view "https://github.com/mahesh86400/user-management-system/blob/main/views/edit.ejs"
click node_styles "https://github.com/mahesh86400/user-management-system/tree/main/public/css"

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_home_route,node_list_route,node_create_routes,node_detail_route,node_edit_routes,node_delete_route,node_browser toneBlue
class node_home_view,node_list_view,node_new_view,node_detail_view,node_edit_view,node_mysql toneAmber
class node_styles toneMint
```

## Components

### Request handlers

- [Home route](https://github.com/mahesh86400/user-management-system/blob/main/index.js): `index.js`
- [User list route](https://github.com/mahesh86400/user-management-system/blob/main/index.js): `index.js`
- [Create user routes](https://github.com/mahesh86400/user-management-system/blob/main/index.js): `index.js`
- [User detail route](https://github.com/mahesh86400/user-management-system/blob/main/index.js): `index.js`
- [Edit user routes](https://github.com/mahesh86400/user-management-system/blob/main/index.js): `index.js`
- [Delete user route](https://github.com/mahesh86400/user-management-system/blob/main/index.js): `index.js`

### Rendered interface

- [Home view](https://github.com/mahesh86400/user-management-system/blob/main/views/home.ejs): `views/home.ejs`
- [Users view](https://github.com/mahesh86400/user-management-system/blob/main/views/users.ejs): `views/users.ejs`
- [New user view](https://github.com/mahesh86400/user-management-system/blob/main/views/new.ejs): `views/new.ejs`
- [User detail view](https://github.com/mahesh86400/user-management-system/blob/main/views/detail.ejs): `views/detail.ejs`
- [Edit user view](https://github.com/mahesh86400/user-management-system/blob/main/views/edit.ejs): `views/edit.ejs`

### Static assets

- [Page styles](https://github.com/mahesh86400/user-management-system/tree/main/public/css): `public/css`

### Other components

- **Browser**
- **MySQL users**

## Connections

- Browser → Home route: requests GET / (evidence: `README.md`)
- Browser → User list route: requests users (evidence: `README.md`)
- Browser → Create user routes: submits create (evidence: `README.md`)
- Browser → User detail route: requests detail (evidence: `README.md`)
- Browser → Edit user routes: requests edit (evidence: `README.md`)
- Browser → Delete user route: submits delete (evidence: `README.md`)
- Home route → MySQL users: counts users (evidence: `index.js`)
- MySQL users → Home route: returns count (evidence: `index.js`)
- Home route → Home view: renders home (evidence: `index.js`)
- User list route → MySQL users: selects users (evidence: `index.js`)
- MySQL users → User list route: returns rows (evidence: `index.js`)
- User list route → Users view: renders list (evidence: `index.js`)
- Create user routes → MySQL users: inserts user (evidence: `index.js`)
- Create user routes → User list route: redirects to list (evidence: `index.js`)
- Create user routes → New user view: renders form (evidence: `index.js`)
- User detail route → MySQL users: selects user (evidence: `index.js`)
- MySQL users → User detail route: returns row (evidence: `index.js`)
- User detail route → User detail view: renders detail (evidence: `index.js`)
- Edit user routes → MySQL users: selects user (evidence: `index.js`)
- MySQL users → Edit user routes: returns row (evidence: `index.js`)
- Edit user routes → Edit user view: renders form (evidence: `index.js`)
- Edit user routes → MySQL users: updates user (evidence: `index.js`)
- Edit user routes → User detail route: redirects to detail (evidence: `index.js`)
- Delete user route → MySQL users: deletes user (evidence: `index.js`)
- Delete user route → User list route: redirects to list (evidence: `index.js`)
- Browser → Page styles: loads static assets
