# oemerfaruk/vectorosint architecture

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

- Interactive diagram: https://gitdiagram.com/oemerfaruk/vectorosint
- Repository: https://github.com/oemerfaruk/vectorosint

## Overview

VectorOSINT collects Reddit RSS posts, stores enriched records, and uses local Ollama analysis to produce intelligence reports; a separate finance-oriented branch also drafts social-media threads. The README documents PDF output, but the sampled analysis code writes Markdown only, so PDF generation is not mapped as implemented. The README and source also name an OSINT database that is absent from the tree; its node therefore has no supported tree path.

Main entry points: [`global_analysis.py`](https://github.com/oemerfaruk/vectorosint/blob/main/global_analysis.py) (Global Analysis), [`finance_analysis.py`](https://github.com/oemerfaruk/vectorosint/blob/main/finance_analysis.py) (Finance Analysis), [`generate_tweet_finance.py`](https://github.com/oemerfaruk/vectorosint/blob/main/generate_tweet_finance.py) (Tweet Generator), [`getDataFromReddit.py`](https://github.com/oemerfaruk/vectorosint/blob/main/getDataFromReddit.py) (OSINT Collector)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_collection["Collection"]
  node_collector["OSINT Collector"]
  node_osintdb[("OSINT SQLite")]
end

subgraph group_intelligence["OSINT Analysis"]
  node_scheduler["Report Scheduler<br/>[auto_reporter.py]"]
  node_analysis["Global Analysis<br/>[global_analysis.py]"]
  node_quickanalysis["Post Analysis<br/>[analysis.py]"]
  node_reports["Markdown Reports"]
end

subgraph group_finance["Finance Content"]
  node_fincollector["Finance Collector"]
  node_financedb[("Finance SQLite")]
  node_financeanalysis["Finance Analysis"]
  node_tweetgen["Tweet Generator"]
  node_tweets["Tweet Drafts"]
end

node_operator(("Operator"))
node_reddit["Reddit RSS"]
node_ollama{{"Ollama Gemma"}}

node_operator -->|"starts collection"| node_collector
node_collector -->|"fetches feeds"| node_reddit
node_collector -->|"stores posts"| node_osintdb
node_operator -->|"starts automation"| node_scheduler
node_scheduler -->|"invokes periodically"| node_analysis
node_operator -->|"runs manually"| node_analysis
node_analysis -->|"reads posts"| node_osintdb
node_analysis -->|"requests analysis"| node_ollama
node_analysis -->|"writes Markdown"| node_reports
node_operator -->|"runs sample analysis"| node_quickanalysis
node_quickanalysis -->|"reads titles"| node_osintdb
node_quickanalysis -->|"requests extraction"| node_ollama
node_operator -->|"starts collection"| node_fincollector
node_fincollector -->|"fetches feeds"| node_reddit
node_fincollector -->|"stores posts"| node_financedb
node_operator -->|"runs analysis"| node_financeanalysis
node_financeanalysis -->|"reads posts"| node_financedb
node_financeanalysis -->|"requests analysis"| node_ollama
node_financeanalysis -->|"writes Markdown"| node_reports
node_operator -->|"generates thread"| node_tweetgen
node_tweetgen -->|"reads posts"| node_financedb
node_tweetgen -->|"requests thread"| node_ollama
node_tweetgen -->|"writes drafts"| node_tweets

click node_collector "https://github.com/oemerfaruk/vectorosint/blob/main/getDataFromReddit.py"
click node_scheduler "https://github.com/oemerfaruk/vectorosint/blob/main/auto_reporter.py"
click node_analysis "https://github.com/oemerfaruk/vectorosint/blob/main/global_analysis.py"
click node_quickanalysis "https://github.com/oemerfaruk/vectorosint/blob/main/analysis.py"
click node_fincollector "https://github.com/oemerfaruk/vectorosint/blob/main/getFinanceDataFromReddit.py"
click node_financedb "https://github.com/oemerfaruk/vectorosint/blob/main/osint_finance_data.db"
click node_financeanalysis "https://github.com/oemerfaruk/vectorosint/blob/main/finance_analysis.py"
click node_tweetgen "https://github.com/oemerfaruk/vectorosint/blob/main/generate_tweet_finance.py"
click node_tweets "https://github.com/oemerfaruk/vectorosint/tree/main/tweets"

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_collector,node_osintdb toneBlue
class node_scheduler,node_analysis,node_quickanalysis,node_reports toneAmber
class node_fincollector,node_financedb,node_financeanalysis,node_tweetgen,node_tweets toneMint
class node_operator,node_reddit,node_ollama toneIndigo
```

## Components

### Collection

- [OSINT Collector](https://github.com/oemerfaruk/vectorosint/blob/main/getDataFromReddit.py): `getDataFromReddit.py`
- **OSINT SQLite**

### OSINT Analysis

- [Report Scheduler](https://github.com/oemerfaruk/vectorosint/blob/main/auto_reporter.py): `auto_reporter.py`
- [Global Analysis](https://github.com/oemerfaruk/vectorosint/blob/main/global_analysis.py): `global_analysis.py`
- [Post Analysis](https://github.com/oemerfaruk/vectorosint/blob/main/analysis.py): `analysis.py`
- **Markdown Reports**

### Finance Content

- [Finance Collector](https://github.com/oemerfaruk/vectorosint/blob/main/getFinanceDataFromReddit.py): `getFinanceDataFromReddit.py`
- [Finance SQLite](https://github.com/oemerfaruk/vectorosint/blob/main/osint_finance_data.db): `osint_finance_data.db`
- [Finance Analysis](https://github.com/oemerfaruk/vectorosint/blob/main/finance_analysis.py): `finance_analysis.py`
- [Tweet Generator](https://github.com/oemerfaruk/vectorosint/blob/main/generate_tweet_finance.py): `generate_tweet_finance.py`
- [Tweet Drafts](https://github.com/oemerfaruk/vectorosint/tree/main/tweets): `tweets`

### Other components

- **Operator**
- **Reddit RSS**
- **Ollama Gemma**

## Connections

- Operator → OSINT Collector: starts collection
- OSINT Collector → Reddit RSS: fetches feeds
- OSINT Collector → OSINT SQLite: stores posts
- Operator → Report Scheduler: starts automation
- Report Scheduler → Global Analysis: invokes periodically
- Operator → Global Analysis: runs manually
- Global Analysis → OSINT SQLite: reads posts
- Global Analysis → Ollama Gemma: requests analysis
- Global Analysis → Markdown Reports: writes Markdown
- Operator → Post Analysis: runs sample analysis
- Post Analysis → OSINT SQLite: reads titles
- Post Analysis → Ollama Gemma: requests extraction
- Operator → Finance Collector: starts collection
- Finance Collector → Reddit RSS: fetches feeds
- Finance Collector → Finance SQLite: stores posts
- Operator → Finance Analysis: runs analysis
- Finance Analysis → Finance SQLite: reads posts
- Finance Analysis → Ollama Gemma: requests analysis
- Finance Analysis → Markdown Reports: writes Markdown
- Operator → Tweet Generator: generates thread
- Tweet Generator → Finance SQLite: reads posts
- Tweet Generator → Ollama Gemma: requests thread
- Tweet Generator → Tweet Drafts: writes drafts
