# kurmamadhav/smart-lexicon-suite architecture

> Architecture diagram of the GitHub repository kurmamadhav/smart-lexicon-suite, 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/kurmamadhav/smart-lexicon-suite
- Repository: https://github.com/kurmamadhav/smart-lexicon-suite

## Overview

Smart Lexicon Suite is a desktop dictionary and text-analytics app. Users search for a word to get cached or live definitions, optionally translated; or submit a paragraph for sentiment, readability, keyword analysis, and translation. The main runtime is concentrated in app1.py, so several components share that path. The README documents capabilities beyond the sampled excerpts; links to unsampled runtime details are omitted.

Main entry points: [`app1.py`](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py) (Text analysis), [`dictionary_cache.db`](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/dictionary_cache.db) (Dictionary cache), [`seed_db.py`](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/seed_db.py) (WordNet seeding), [`seed_translations.py`](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/seed_translations.py) (Offline translation seeding)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Desktop interface"]
  node_gui["Tabbed GUI<br/>[app1.py]"]
  node_dict_search["Dictionary search<br/>[app1.py]"]
  node_nlp_analysis["Text analysis<br/>[app1.py]"]
  node_network_status["Network status check<br/>[app1.py]"]
end

subgraph group_dictionary["Dictionary data"]
  node_dict_lookup["Definition lookup<br/>[app1.py]"]
  node_cache_read["Cache lookup<br/>[app1.py]"]
  node_cache_write["Cache updates<br/>[app1.py]"]
  node_sqlite[("Dictionary cache")]
  node_translation["Live translation<br/>[app1.py]"]
  node_seed_wordnet["WordNet seeding<br/>[seed_db.py]"]
  node_seed_translation["Offline translation seeding"]
end

subgraph group_analytics["Text analytics"]
  node_tokenization["Text tokenization<br/>[app1.py]"]
  node_keyword_extraction["Keyword extraction<br/>[app1.py]"]
  node_sentiment["Sentiment scoring<br/>[app1.py]"]
  node_readability["Readability scoring<br/>[app1.py]"]
  node_paragraph_translation["Paragraph translation<br/>[app1.py]"]
end

node_user(("User"))
node_dictionary_api["Free Dictionary API"]
node_translator_service["Google Translator"]
node_wordnet["NLTK WordNet"]
node_argos["Argos Translate"]
node_nltk_resources["NLTK resources"]

node_user -->|"uses"| node_gui
node_gui -->|"submits search"| node_dict_search
node_dict_search -->|"starts lookup"| node_dict_lookup
node_dict_lookup -->|"checks cache"| node_cache_read
node_cache_read -->|"reads"| node_sqlite
node_dict_lookup -.->|"queries fallback"| node_dictionary_api
node_dict_lookup -.->|"translates definitions"| node_translation
node_translation -.->|"translates"| node_translator_service
node_dict_lookup -->|"stores results"| node_cache_write
node_cache_write -->|"writes"| node_sqlite
node_dict_search -->|"displays results"| node_gui
node_seed_wordnet -->|"reads lexicon"| node_wordnet
node_seed_wordnet -->|"writes definitions"| node_sqlite
node_seed_translation -->|"reads and writes"| node_sqlite
node_seed_translation -->|"translates offline"| node_argos
node_gui -->|"submits paragraph"| node_nlp_analysis
node_nlp_analysis -->|"tokenizes text"| node_tokenization
node_tokenization -->|"uses tokenizers"| node_nltk_resources
node_nlp_analysis -->|"extracts keywords"| node_keyword_extraction
node_keyword_extraction -->|"uses stopwords"| node_nltk_resources
node_nlp_analysis -->|"scores tone"| node_sentiment
node_sentiment -->|"uses VADER"| node_nltk_resources
node_nlp_analysis -->|"scores readability"| node_readability
node_nlp_analysis -.->|"translates paragraph"| node_paragraph_translation
node_paragraph_translation -.->|"translates"| node_translator_service
node_nlp_analysis -->|"displays report"| node_gui
node_gui -->|"starts monitoring"| node_network_status

click node_gui "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_dict_search "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_nlp_analysis "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_dict_lookup "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_cache_read "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_cache_write "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_sqlite "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/dictionary_cache.db"
click node_translation "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_seed_wordnet "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/seed_db.py"
click node_seed_translation "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/seed_translations.py"
click node_tokenization "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_keyword_extraction "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_sentiment "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_readability "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_paragraph_translation "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py"
click node_network_status "https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.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_gui,node_dict_search,node_nlp_analysis,node_network_status,node_user toneBlue
class node_dict_lookup,node_cache_read,node_cache_write,node_sqlite,node_translation,node_seed_wordnet,node_seed_translation toneAmber
class node_tokenization,node_keyword_extraction,node_sentiment,node_readability,node_paragraph_translation,node_dictionary_api toneMint
class node_translator_service,node_wordnet,node_argos,node_nltk_resources toneIndigo
```

## Components

### Desktop interface

- [Tabbed GUI](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Dictionary search](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Text analysis](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Network status check](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`

### Dictionary data

- [Definition lookup](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Cache lookup](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Cache updates](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Dictionary cache](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/dictionary_cache.db): `dictionary_cache.db`
- [Live translation](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [WordNet seeding](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/seed_db.py): `seed_db.py`
- [Offline translation seeding](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/seed_translations.py): `seed_translations.py`

### Text analytics

- [Text tokenization](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Keyword extraction](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Sentiment scoring](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Readability scoring](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`
- [Paragraph translation](https://github.com/kurmamadhav/smart-lexicon-suite/blob/main/app1.py): `app1.py`

### Other components

- **User**
- **Free Dictionary API**
- **Google Translator**
- **NLTK WordNet**
- **Argos Translate**
- **NLTK resources**

## Connections

- User → Tabbed GUI: uses
- Tabbed GUI → Dictionary search: submits search
- Dictionary search → Definition lookup: starts lookup
- Definition lookup → Cache lookup: checks cache
- Cache lookup → Dictionary cache: reads
- Definition lookup → Free Dictionary API: queries fallback
- Definition lookup → Live translation: translates definitions
- Live translation → Google Translator: translates
- Definition lookup → Cache updates: stores results
- Cache updates → Dictionary cache: writes
- Dictionary search → Tabbed GUI: displays results
- WordNet seeding → NLTK WordNet: reads lexicon
- WordNet seeding → Dictionary cache: writes definitions
- Offline translation seeding → Dictionary cache: reads and writes
- Offline translation seeding → Argos Translate: translates offline
- Tabbed GUI → Text analysis: submits paragraph
- Text analysis → Text tokenization: tokenizes text
- Text tokenization → NLTK resources: uses tokenizers
- Text analysis → Keyword extraction: extracts keywords
- Keyword extraction → NLTK resources: uses stopwords
- Text analysis → Sentiment scoring: scores tone
- Sentiment scoring → NLTK resources: uses VADER
- Text analysis → Readability scoring: scores readability
- Text analysis → Paragraph translation: translates paragraph
- Paragraph translation → Google Translator: translates
- Text analysis → Tabbed GUI: displays report
- Tabbed GUI → Network status check: starts monitoring
