# ankurdotio/code-review architecture

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

- Interactive diagram: https://gitdiagram.com/ankurdotio/code-review
- Repository: https://github.com/ankurdotio/code-review

## Overview

This is a browser-based AI code-review app. A developer edits code in the React interface and submits it; the frontend posts the code to the Express API, whose review controller validates it and calls the Gemini-backed service. The service returns generated review text, which the frontend renders as Markdown. The diagram follows the sampled request path; the frontend README is present but no product documentation was supplied, so capabilities beyond this workflow are not inferred.

Main entry points: [`Frontend/src/App.jsx`](https://github.com/ankurdotio/code-review/blob/main/Frontend/src/App.jsx) (Editor and Results), [`BackEnd/src/controllers/ai.controller.js`](https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/controllers/ai.controller.js) (Review Controller), [`BackEnd/src/services/ai.service.js`](https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/services/ai.service.js) (Review Service), [`BackEnd/src/app.js`](https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/app.js) (Express App)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Frontend"]
  node_app_ui["Editor and Results<br/>[App.jsx]"]
  node_react_entry["React Entry<br/>[main.jsx]"]
end

subgraph group_api["API"]
  node_express_app["Express App<br/>[app.js]"]
  node_ai_routes["Review Route<br/>[ai.routes.js]"]
  node_ai_controller["Review Controller<br/>[ai.controller.js]"]
  node_server_start["Server Startup<br/>[server.js]"]
end

subgraph group_review["AI Review"]
  node_ai_service["Review Service<br/>[ai.service.js]"]
end

node_developer(("Developer"))
node_gemini{{"Gemini API"}}

node_react_entry -->|"renders"| node_app_ui
node_developer -->|"edits and submits"| node_app_ui
node_app_ui -->|"posts code"| node_express_app
node_server_start -->|"starts"| node_express_app
node_express_app -->|"mounts routes"| node_ai_routes
node_ai_routes -->|"dispatches request"| node_ai_controller
node_ai_controller -->|"requests review"| node_ai_service
node_ai_service -->|"generates review"| node_gemini
node_gemini -->|"returns review text"| node_ai_service
node_ai_service -->|"returns review"| node_ai_controller
node_ai_controller -->|"sends HTTP response"| node_app_ui
node_app_ui -->|"renders Markdown"| node_developer

click node_app_ui "https://github.com/ankurdotio/code-review/blob/main/Frontend/src/App.jsx"
click node_react_entry "https://github.com/ankurdotio/code-review/blob/main/Frontend/src/main.jsx"
click node_express_app "https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/app.js"
click node_ai_routes "https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/routes/ai.routes.js"
click node_ai_controller "https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/controllers/ai.controller.js"
click node_ai_service "https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/services/ai.service.js"
click node_server_start "https://github.com/ankurdotio/code-review/blob/main/BackEnd/server.js"

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_ui,node_react_entry toneBlue
class node_express_app,node_ai_routes,node_ai_controller,node_server_start toneAmber
class node_ai_service,node_gemini toneMint
class node_developer toneIndigo
```

## Components

### Frontend

- [Editor and Results](https://github.com/ankurdotio/code-review/blob/main/Frontend/src/App.jsx): `Frontend/src/App.jsx`
- [React Entry](https://github.com/ankurdotio/code-review/blob/main/Frontend/src/main.jsx): `Frontend/src/main.jsx`

### API

- [Express App](https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/app.js): `BackEnd/src/app.js`
- [Review Route](https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/routes/ai.routes.js): `BackEnd/src/routes/ai.routes.js`
- [Review Controller](https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/controllers/ai.controller.js): `BackEnd/src/controllers/ai.controller.js`
- [Server Startup](https://github.com/ankurdotio/code-review/blob/main/BackEnd/server.js): `BackEnd/server.js`

### AI Review

- [Review Service](https://github.com/ankurdotio/code-review/blob/main/BackEnd/src/services/ai.service.js): `BackEnd/src/services/ai.service.js`

### Other components

- **Developer**
- **Gemini API**

## Connections

- React Entry → Editor and Results: renders
- Developer → Editor and Results: edits and submits
- Editor and Results → Express App: posts code
- Server Startup → Express App: starts
- Express App → Review Route: mounts routes
- Review Route → Review Controller: dispatches request
- Review Controller → Review Service: requests review
- Review Service → Gemini API: generates review
- Gemini API → Review Service: returns review text
- Review Service → Review Controller: returns review
- Review Controller → Editor and Results: sends HTTP response
- Editor and Results → Developer: renders Markdown
