# kandagatlaabhijith/veriintern-2026 architecture

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

- Interactive diagram: https://gitdiagram.com/kandagatlaabhijith/veriintern-2026
- Repository: https://github.com/kandagatlaabhijith/veriintern-2026

## Overview

VeriIntern is a web-based internship-posting fraud analyzer. A user submits posting text (and optionally a URL) through the React interface; the FastAPI analysis endpoint combines model, rule/feature, and URL signals into a risk result. Separate endpoints inspect URLs and payment language and explain predictions. The backend also provides dataset-based model training and benchmark evaluation. Some frontend request details and backend fusion logic fall in omitted excerpts, so those relationships are marked unverified rather than asserted as confirmed calls.

Main entry points: [`backend/main.py`](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/main.py) (FastAPI endpoints), [`backend/part1_dataset_similarity.py`](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/part1_dataset_similarity.py) (Feature extraction), [`backend/benchmark_eval.py`](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/benchmark_eval.py) (Benchmark evaluation), [`backend/part2_ml_model.py`](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/part2_ml_model.py) (ML ensemble)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_webapp["Analyzer interface<br/>[App.jsx]"]
end

subgraph group_api["API orchestration"]
  node_api_main["FastAPI endpoints<br/>[main.py]"]
end

subgraph group_signals["Detection signals"]
  node_feature_engine["Feature extraction"]
  node_normalizer["Text normalization<br/>[normalization.py]"]
  node_payments["Payment detection"]
  node_url_analysis["URL risk analysis<br/>[url_checker.py]"]
  node_domain_trust["Domain trust<br/>[trust_layer.py]"]
  node_explanations["Prediction explanations<br/>[explainability.py]"]
end

subgraph group_ml["Model and evaluation"]
  node_ensemble["ML ensemble<br/>[part2_ml_model.py]"]
  node_training_data[("Expanded training data")]
  node_benchmark["Benchmark evaluation<br/>[benchmark_eval.py]"]
end

node_user(("Internship seeker"))

node_user -->|"submits posting"| node_webapp
node_webapp -.->|"requests analysis"| node_api_main
node_api_main -->|"predicts text"| node_ensemble
node_api_main -->|"extracts features"| node_feature_engine
node_api_main -->|"analyzes URL"| node_url_analysis
node_api_main -->|"detects payment"| node_payments
node_api_main -->|"builds explanation"| node_explanations
node_api_main -->|"checks trust"| node_domain_trust
node_ensemble -->|"extracts features"| node_feature_engine
node_ensemble -->|"trains on"| node_training_data
node_feature_engine -->|"checks payment context"| node_payments
node_feature_engine -->|"normalizes text"| node_normalizer
node_payments -->|"normalizes text"| node_normalizer
node_url_analysis -->|"uses brand domains"| node_domain_trust
node_explanations -->|"explains features"| node_feature_engine
node_benchmark -->|"evaluates predictions"| node_ensemble
node_benchmark -->|"uses rule scoring"| node_api_main
node_benchmark -->|"scores URLs"| node_url_analysis
node_benchmark -->|"checks features"| node_feature_engine

click node_webapp "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/frontend/src/App.jsx"
click node_api_main "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/main.py"
click node_feature_engine "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/part1_dataset_similarity.py"
click node_normalizer "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/normalization.py"
click node_payments "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/payment_detector.py"
click node_url_analysis "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/url_checker.py"
click node_domain_trust "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/trust_layer.py"
click node_explanations "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/explainability.py"
click node_ensemble "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/part2_ml_model.py"
click node_training_data "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/dataset/expanded_dataset.csv"
click node_benchmark "https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/benchmark_eval.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_webapp toneBlue
class node_api_main toneAmber
class node_feature_engine,node_normalizer,node_payments,node_url_analysis,node_domain_trust,node_explanations toneMint
class node_ensemble,node_training_data,node_benchmark toneRose
class node_user toneIndigo
```

## Components

### Web client

- [Analyzer interface](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`

### API orchestration

- [FastAPI endpoints](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/main.py): `backend/main.py`

### Detection signals

- [Feature extraction](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/part1_dataset_similarity.py): `backend/part1_dataset_similarity.py`
- [Text normalization](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/normalization.py): `backend/normalization.py`
- [Payment detection](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/payment_detector.py): `backend/payment_detector.py`
- [URL risk analysis](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/url_checker.py): `backend/url_checker.py`
- [Domain trust](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/trust_layer.py): `backend/trust_layer.py`
- [Prediction explanations](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/explainability.py): `backend/explainability.py`

### Model and evaluation

- [ML ensemble](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/part2_ml_model.py): `backend/part2_ml_model.py`
- [Expanded training data](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/dataset/expanded_dataset.csv): `dataset/expanded_dataset.csv`
- [Benchmark evaluation](https://github.com/kandagatlaabhijith/veriintern-2026/blob/main/backend/benchmark_eval.py): `backend/benchmark_eval.py`

### Other components

- **Internship seeker**

## Connections

- Internship seeker → Analyzer interface: submits posting (evidence: `README.md`)
- Analyzer interface → FastAPI endpoints: requests analysis
- FastAPI endpoints → ML ensemble: predicts text (evidence: `backend/main.py`)
- FastAPI endpoints → Feature extraction: extracts features (evidence: `backend/main.py`)
- FastAPI endpoints → URL risk analysis: analyzes URL (evidence: `backend/main.py`)
- FastAPI endpoints → Payment detection: detects payment (evidence: `backend/main.py`)
- FastAPI endpoints → Prediction explanations: builds explanation (evidence: `backend/main.py`)
- FastAPI endpoints → Domain trust: checks trust (evidence: `backend/main.py`)
- ML ensemble → Feature extraction: extracts features (evidence: `backend/part2_ml_model.py`)
- ML ensemble → Expanded training data: trains on (evidence: `backend/part2_ml_model.py`)
- Feature extraction → Payment detection: checks payment context (evidence: `backend/part1_dataset_similarity.py`)
- Feature extraction → Text normalization: normalizes text (evidence: `backend/part1_dataset_similarity.py`)
- Payment detection → Text normalization: normalizes text (evidence: `backend/payment_detector.py`)
- URL risk analysis → Domain trust: uses brand domains (evidence: `backend/url_checker.py`)
- Prediction explanations → Feature extraction: explains features (evidence: `backend/explainability.py`)
- Benchmark evaluation → ML ensemble: evaluates predictions (evidence: `backend/benchmark_eval.py`)
- Benchmark evaluation → FastAPI endpoints: uses rule scoring (evidence: `backend/benchmark_eval.py`)
- Benchmark evaluation → URL risk analysis: scores URLs (evidence: `backend/benchmark_eval.py`)
- Benchmark evaluation → Feature extraction: checks features (evidence: `backend/benchmark_eval.py`)
