# atulyakumar97/news-sentiment-analysis architecture

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

- Interactive diagram: https://gitdiagram.com/atulyakumar97/news-sentiment-analysis
- Repository: https://github.com/atulyakumar97/news-sentiment-analysis

## Overview

This application takes company and analysis settings from input.xlsx, scrapes news from Moneycontrol and Economic Times, and produces a CSV. Two separate tools then analyse the scraped content: Score Generator produces absolute scores, while Scrape Analyser performs relative classification into RED, AMBER, and GREEN. The source code is not present in the supplied tree, so the graph reflects only relationships documented in the README; generated output files are shown without repository paths.

Main entry points: [`input.xlsx`](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/input.xlsx) (input.xlsx), [`News Scraper.exe`](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/News%20Scraper.exe) (News Scraper), [`Score Generator.exe`](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/Score%20Generator.exe) (Score Generator), [`Scrape Analyser.exe`](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/Scrape%20Analyser.exe) (Scrape Analyser)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_configuration["Configuration"]
  node_workbook["input.xlsx<br/>[input.xlsx]"]
end

subgraph group_collection["News collection"]
  node_scraper["News Scraper<br/>[News Scraper.exe]"]
  node_scrape_csv["Scrape Output.csv"]
end

subgraph group_analysis["Sentiment analysis"]
  node_score_generator["Score Generator"]
  node_scrape_analyser["Scrape Analyser"]
  node_score_output["Score Output.xlsx"]
  node_analyse_output["Analyse Output.xlsx"]
end

node_user(("User"))
node_moneycontrol["Moneycontrol"]
node_economictimes["Economic Times"]

node_user -->|"configures"| node_workbook
node_workbook -->|"configures"| node_scraper
node_scraper -->|"crawls"| node_moneycontrol
node_scraper -->|"crawls"| node_economictimes
node_scraper -->|"builds"| node_scrape_csv
node_workbook -->|"provides settings"| node_score_generator
node_scrape_csv -->|"provides content"| node_score_generator
node_score_generator -->|"produces scores"| node_score_output
node_workbook -->|"provides settings"| node_scrape_analyser
node_scrape_csv -->|"provides content"| node_scrape_analyser
node_scrape_analyser -->|"produces classifications"| node_analyse_output

click node_workbook "https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/input.xlsx"
click node_scraper "https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/News%20Scraper.exe"
click node_score_generator "https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/Score%20Generator.exe"
click node_scrape_analyser "https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/Scrape%20Analyser.exe"

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_workbook,node_user toneBlue
class node_scraper,node_scrape_csv toneAmber
class node_score_generator,node_scrape_analyser,node_score_output,node_analyse_output toneMint
class node_moneycontrol,node_economictimes toneIndigo
```

## Components

### Configuration

- [input.xlsx](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/input.xlsx): `input.xlsx`

### News collection

- [News Scraper](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/News%20Scraper.exe): `News Scraper.exe`
- **Scrape Output.csv**

### Sentiment analysis

- [Score Generator](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/Score%20Generator.exe): `Score Generator.exe`
- [Scrape Analyser](https://github.com/atulyakumar97/news-sentiment-analysis/blob/dist-windows/Scrape%20Analyser.exe): `Scrape Analyser.exe`
- **Score Output.xlsx**
- **Analyse Output.xlsx**

### Other components

- **User**
- **Moneycontrol**
- **Economic Times**

## Connections

- User → input.xlsx: configures (evidence: `README.md`)
- input.xlsx → News Scraper: configures (evidence: `README.md`)
- News Scraper → Moneycontrol: crawls (evidence: `README.md`)
- News Scraper → Economic Times: crawls (evidence: `README.md`)
- News Scraper → Scrape Output.csv: builds (evidence: `README.md`)
- input.xlsx → Score Generator: provides settings (evidence: `README.md`)
- Scrape Output.csv → Score Generator: provides content (evidence: `README.md`)
- Score Generator → Score Output.xlsx: produces scores (evidence: `README.md`)
- input.xlsx → Scrape Analyser: provides settings (evidence: `README.md`)
- Scrape Output.csv → Scrape Analyser: provides content (evidence: `README.md`)
- Scrape Analyser → Analyse Output.xlsx: produces classifications (evidence: `README.md`)
