# asiyaibrahim478/nlp_semester_projectt architecture

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

- Interactive diagram: https://gitdiagram.com/asiyaibrahim478/nlp_semester_projectt
- Repository: https://github.com/asiyaibrahim478/nlp_semester_projectt

## Overview

Summary Box is a Streamlit app for turning pasted text or sourced content into summaries and document insights. Users submit text, a URL, PDF, audio, or YouTube link; source-specific extractors produce text that the app analyzes and displays, with summaries optionally saved to session favorites. The README also documents downloadable text reports, though that capability is not visible in the sampled app.py excerpt. The graph reflects the single-file implementation; external service links are shown only where the excerpt calls them.

Main entry points: [`app.py`](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py) (Streamlit UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Content Inputs"]
  node_streamlit["Streamlit UI<br/>[app.py]"]
  node_text_input["Text Entry<br/>[app.py]"]
  node_url_extractor["URL Extraction<br/>[app.py]"]
  node_pdf_extractor["PDF Extraction<br/>[app.py]"]
  node_audio_extractor["Audio Transcription<br/>[app.py]"]
  node_youtube_extractor["YouTube Transcript<br/>[app.py]"]
end

subgraph group_analysis["Text Analysis"]
  node_content_analysis["Content Analysis<br/>[app.py]"]
  node_summarizer["BART Summarizer<br/>[app.py]"]
  node_key_points["Key Concepts<br/>[app.py]"]
  node_technology_detection["Technology Detection<br/>[app.py]"]
  node_purpose_detection["Purpose Classification<br/>[app.py]"]
  node_creativity_measure["Creativity Measure<br/>[app.py]"]
end

subgraph group_experience["App Experience"]
  node_results["Analysis Results<br/>[app.py]"]
  node_favorites[("Session Favorites<br/>[app.py]")]
  node_report_export["Text Report Export<br/>[app.py]"]
end

node_user(("User"))
node_web_source["Web Pages"]
node_speech_service["Google Speech"]
node_youtube_service["YouTube Transcripts"]
node_transformer_model["Hugging Face Model"]

node_user -->|"uses"| node_streamlit
node_streamlit -->|"accepts text"| node_text_input
node_streamlit -->|"submits URL"| node_url_extractor
node_streamlit -->|"submits PDF"| node_pdf_extractor
node_streamlit -->|"submits audio"| node_audio_extractor
node_streamlit -->|"submits link"| node_youtube_extractor
node_url_extractor -->|"fetches page"| node_web_source
node_audio_extractor -->|"transcribes audio"| node_speech_service
node_youtube_extractor -->|"gets transcript"| node_youtube_service
node_streamlit -->|"processes text"| node_content_analysis
node_content_analysis -->|"generates summary"| node_summarizer
node_summarizer -->|"loads model"| node_transformer_model
node_content_analysis -->|"extracts terms"| node_key_points
node_content_analysis -->|"detects tools"| node_technology_detection
node_content_analysis -->|"infers purpose"| node_purpose_detection
node_content_analysis -->|"scores vocabulary"| node_creativity_measure
node_content_analysis -->|"renders insights"| node_results
node_streamlit -->|"saves summary"| node_favorites
node_results -.->|"exports report"| node_report_export

click node_streamlit "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_text_input "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_url_extractor "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_pdf_extractor "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_audio_extractor "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_youtube_extractor "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_content_analysis "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_summarizer "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_key_points "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_technology_detection "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_purpose_detection "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_creativity_measure "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_results "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_favorites "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"
click node_report_export "https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py"

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_streamlit,node_text_input,node_url_extractor,node_pdf_extractor,node_audio_extractor,node_youtube_extractor,node_user toneBlue
class node_content_analysis,node_summarizer,node_key_points,node_technology_detection,node_purpose_detection,node_creativity_measure toneAmber
class node_results,node_favorites,node_report_export toneMint
class node_web_source,node_speech_service,node_youtube_service,node_transformer_model toneIndigo
```

## Components

### Content Inputs

- [Streamlit UI](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Text Entry](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [URL Extraction](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [PDF Extraction](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Audio Transcription](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [YouTube Transcript](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`

### Text Analysis

- [Content Analysis](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [BART Summarizer](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Key Concepts](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Technology Detection](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Purpose Classification](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Creativity Measure](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`

### App Experience

- [Analysis Results](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Session Favorites](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`
- [Text Report Export](https://github.com/asiyaibrahim478/nlp_semester_projectt/blob/main/app.py): `app.py`

### Other components

- **User**
- **Web Pages**
- **Google Speech**
- **YouTube Transcripts**
- **Hugging Face Model**

## Connections

- User → Streamlit UI: uses (evidence: `README.md`)
- Streamlit UI → Text Entry: accepts text (evidence: `app.py`)
- Streamlit UI → URL Extraction: submits URL (evidence: `app.py`)
- Streamlit UI → PDF Extraction: submits PDF (evidence: `app.py`)
- Streamlit UI → Audio Transcription: submits audio (evidence: `app.py`)
- Streamlit UI → YouTube Transcript: submits link (evidence: `app.py`)
- URL Extraction → Web Pages: fetches page (evidence: `app.py`)
- Audio Transcription → Google Speech: transcribes audio (evidence: `app.py`)
- YouTube Transcript → YouTube Transcripts: gets transcript (evidence: `app.py`)
- Streamlit UI → Content Analysis: processes text (evidence: `app.py`)
- Content Analysis → BART Summarizer: generates summary (evidence: `app.py`)
- BART Summarizer → Hugging Face Model: loads model (evidence: `app.py`)
- Content Analysis → Key Concepts: extracts terms (evidence: `app.py`)
- Content Analysis → Technology Detection: detects tools (evidence: `app.py`)
- Content Analysis → Purpose Classification: infers purpose (evidence: `app.py`)
- Content Analysis → Creativity Measure: scores vocabulary (evidence: `app.py`)
- Content Analysis → Analysis Results: renders insights (evidence: `app.py`)
- Streamlit UI → Session Favorites: saves summary (evidence: `app.py`)
- Analysis Results → Text Report Export: exports report (evidence: `README.md`)
