# dharshan-gangadhar/reviewsense architecture

> Architecture diagram of the GitHub repository dharshan-gangadhar/reviewsense, 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/dharshan-gangadhar/reviewsense
- Repository: https://github.com/dharshan-gangadhar/reviewsense

## Overview

This is a Flask review-analysis application. Users create accounts, submit reviews or upload datasets, then view sentiment and aspect insights; administrators manage users and aspects and inspect processing and analytics data. Routing, processing, and reporting are concentrated in app.py, while module.py defines the persistent models. The excerpts show review highlighting, dataset processing, and VADER integration, but do not expose every route or the full analysis implementation, so uncertain internal links are omitted.

Main entry points: [`app.py`](https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py) (Flask application), [`module.py`](https://github.com/dharshan-gangadhar/reviewsense/blob/main/module.py) (Data models), [`templates/review.html`](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/review.html) (Review pages), [`templates/insights.html`](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/insights.html) (Insights dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["User experience"]
  node_app["Flask application<br/>[app.py]"]
  node_account["Accounts and profiles<br/>[app.py]"]
  node_review_ui["Review pages<br/>[review.html]"]
  node_insights_ui["Insights dashboard<br/>[insights.html]"]
end

subgraph group_analysis["Review analysis"]
  node_upload["Dataset upload<br/>[app.py]"]
  node_processing["Review processing<br/>[app.py]"]
  node_vader["VADER analyzer"]
  node_aspect["Aspect analysis<br/>[app.py]"]
end

subgraph group_data["Application data"]
  node_models["Data models<br/>[module.py]"]
  node_database[("Application database")]
end

subgraph group_admin["Administration"]
  node_admin_ui["Admin pages<br/>[admin_base.html]"]
  node_admin_routes["Admin operations<br/>[app.py]"]
  node_admin_analytics["Admin analytics"]
  node_admin_monitor["Processing monitor<br/>[admin_monitor.html]"]
  node_admin_reports["Admin reports<br/>[admin_reports.html]"]
end

node_user(("User"))

node_user -->|"sends requests"| node_app
node_app -->|"dispatches"| node_account
node_app -->|"dispatches"| node_upload
node_app -->|"dispatches"| node_processing
node_app -->|"dispatches"| node_aspect
node_app -->|"dispatches"| node_admin_routes
node_account -->|"reads and writes"| node_models
node_upload -->|"processes file"| node_processing
node_processing -->|"analyzes sentiment"| node_vader
node_processing -->|"extracts aspects"| node_aspect
node_processing -->|"stores reviews"| node_models
node_aspect -->|"stores aspects"| node_models
node_models -->|"persists records"| node_database
node_app -->|"renders"| node_review_ui
node_app -->|"renders"| node_insights_ui
node_app -->|"renders"| node_admin_ui
node_admin_routes -->|"queries and updates"| node_models
node_admin_routes -->|"renders data"| node_admin_analytics
node_admin_routes -->|"renders data"| node_admin_monitor
node_admin_routes -->|"renders data"| node_admin_reports

click node_app "https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py"
click node_account "https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py"
click node_review_ui "https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/review.html"
click node_insights_ui "https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/insights.html"
click node_upload "https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py"
click node_processing "https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py"
click node_aspect "https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py"
click node_models "https://github.com/dharshan-gangadhar/reviewsense/blob/main/module.py"
click node_admin_ui "https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_base.html"
click node_admin_routes "https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py"
click node_admin_analytics "https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_analytics.html"
click node_admin_monitor "https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_monitor.html"
click node_admin_reports "https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_reports.html"

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_account,node_review_ui,node_insights_ui,node_user toneBlue
class node_upload,node_processing,node_vader,node_aspect toneAmber
class node_models,node_database toneMint
class node_admin_ui,node_admin_routes,node_admin_analytics,node_admin_monitor,node_admin_reports toneRose
```

## Components

### User experience

- [Flask application](https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py): `app.py`
- [Accounts and profiles](https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py): `app.py`
- [Review pages](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/review.html): `templates/review.html`
- [Insights dashboard](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/insights.html): `templates/insights.html`

### Review analysis

- [Dataset upload](https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py): `app.py`
- [Review processing](https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py): `app.py`
- **VADER analyzer**
- [Aspect analysis](https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py): `app.py`

### Application data

- [Data models](https://github.com/dharshan-gangadhar/reviewsense/blob/main/module.py): `module.py`
- **Application database**

### Administration

- [Admin pages](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_base.html): `templates/admin_base.html`
- [Admin operations](https://github.com/dharshan-gangadhar/reviewsense/blob/main/app.py): `app.py`
- [Admin analytics](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_analytics.html): `templates/admin_analytics.html`
- [Processing monitor](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_monitor.html): `templates/admin_monitor.html`
- [Admin reports](https://github.com/dharshan-gangadhar/reviewsense/blob/main/templates/admin_reports.html): `templates/admin_reports.html`

### Other components

- **User**

## Connections

- User → Flask application: sends requests
- Flask application → Accounts and profiles: dispatches
- Flask application → Dataset upload: dispatches
- Flask application → Review processing: dispatches
- Flask application → Aspect analysis: dispatches
- Flask application → Admin operations: dispatches
- Accounts and profiles → Data models: reads and writes
- Dataset upload → Review processing: processes file
- Review processing → VADER analyzer: analyzes sentiment
- Review processing → Aspect analysis: extracts aspects
- Review processing → Data models: stores reviews
- Aspect analysis → Data models: stores aspects
- Data models → Application database: persists records
- Flask application → Review pages: renders
- Flask application → Insights dashboard: renders
- Flask application → Admin pages: renders
- Admin operations → Data models: queries and updates
- Admin operations → Admin analytics: renders data
- Admin operations → Processing monitor: renders data
- Admin operations → Admin reports: renders data
