Spaces:
Running
Running
Commit Β·
2a5cb4a
1
Parent(s): 2267fcc
Remove unwanted files
Browse files
.github/workflows/daily_scrape.yml
DELETED
|
@@ -1,24 +0,0 @@
|
|
| 1 |
-
name: daily-scrape
|
| 2 |
-
on:
|
| 3 |
-
schedule:
|
| 4 |
-
- cron: "0 21 * * *"
|
| 5 |
-
workflow_dispatch:
|
| 6 |
-
jobs:
|
| 7 |
-
scrape:
|
| 8 |
-
runs-on: ubuntu-latest
|
| 9 |
-
timeout-minutes: 45
|
| 10 |
-
steps:
|
| 11 |
-
- uses: actions/checkout@v4
|
| 12 |
-
- uses: actions/setup-python@v5
|
| 13 |
-
with:
|
| 14 |
-
python-version: "3.11"
|
| 15 |
-
cache: pip
|
| 16 |
-
- run: pip install -r requirements.txt
|
| 17 |
-
- name: run pipeline
|
| 18 |
-
env:
|
| 19 |
-
DATAGOV_API_KEY: ${{ secrets.DATAGOV_API_KEY }}
|
| 20 |
-
NEO4J_URI: ${{ secrets.NEO4J_URI }}
|
| 21 |
-
NEO4J_USER: ${{ secrets.NEO4J_USER }}
|
| 22 |
-
NEO4J_PASSWORD: ${{ secrets.NEO4J_PASSWORD }}
|
| 23 |
-
OPENSANCTIONS_API_KEY: ${{ secrets.OPENSANCTIONS_API_KEY }}
|
| 24 |
-
run: python -m processing.pipeline --scrapers cag,gem,pib,myneta,mca,loksabha,ed,wikidata
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.github/workflows/jekyll-gh-pages.yml
DELETED
|
@@ -1,51 +0,0 @@
|
|
| 1 |
-
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
|
| 2 |
-
name: Deploy Jekyll with GitHub Pages dependencies preinstalled
|
| 3 |
-
|
| 4 |
-
on:
|
| 5 |
-
# Runs on pushes targeting the default branch
|
| 6 |
-
push:
|
| 7 |
-
branches: ["main"]
|
| 8 |
-
|
| 9 |
-
# Allows you to run this workflow manually from the Actions tab
|
| 10 |
-
workflow_dispatch:
|
| 11 |
-
|
| 12 |
-
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
| 13 |
-
permissions:
|
| 14 |
-
contents: read
|
| 15 |
-
pages: write
|
| 16 |
-
id-token: write
|
| 17 |
-
|
| 18 |
-
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
| 19 |
-
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
| 20 |
-
concurrency:
|
| 21 |
-
group: "pages"
|
| 22 |
-
cancel-in-progress: false
|
| 23 |
-
|
| 24 |
-
jobs:
|
| 25 |
-
# Build job
|
| 26 |
-
build:
|
| 27 |
-
runs-on: ubuntu-latest
|
| 28 |
-
steps:
|
| 29 |
-
- name: Checkout
|
| 30 |
-
uses: actions/checkout@v4
|
| 31 |
-
- name: Setup Pages
|
| 32 |
-
uses: actions/configure-pages@v5
|
| 33 |
-
- name: Build with Jekyll
|
| 34 |
-
uses: actions/jekyll-build-pages@v1
|
| 35 |
-
with:
|
| 36 |
-
source: ./
|
| 37 |
-
destination: ./_site
|
| 38 |
-
- name: Upload artifact
|
| 39 |
-
uses: actions/upload-pages-artifact@v3
|
| 40 |
-
|
| 41 |
-
# Deployment job
|
| 42 |
-
deploy:
|
| 43 |
-
environment:
|
| 44 |
-
name: github-pages
|
| 45 |
-
url: ${{ steps.deployment.outputs.page_url }}
|
| 46 |
-
runs-on: ubuntu-latest
|
| 47 |
-
needs: build
|
| 48 |
-
steps:
|
| 49 |
-
- name: Deploy to GitHub Pages
|
| 50 |
-
id: deployment
|
| 51 |
-
uses: actions/deploy-pages@v5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.github/workflows/static.yml
DELETED
|
@@ -1,43 +0,0 @@
|
|
| 1 |
-
# Simple workflow for deploying static content to GitHub Pages
|
| 2 |
-
name: Deploy static content to Pages
|
| 3 |
-
|
| 4 |
-
on:
|
| 5 |
-
# Runs on pushes targeting the default branch
|
| 6 |
-
push:
|
| 7 |
-
branches: ["main"]
|
| 8 |
-
|
| 9 |
-
# Allows you to run this workflow manually from the Actions tab
|
| 10 |
-
workflow_dispatch:
|
| 11 |
-
|
| 12 |
-
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
| 13 |
-
permissions:
|
| 14 |
-
contents: read
|
| 15 |
-
pages: write
|
| 16 |
-
id-token: write
|
| 17 |
-
|
| 18 |
-
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
| 19 |
-
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
| 20 |
-
concurrency:
|
| 21 |
-
group: "pages"
|
| 22 |
-
cancel-in-progress: false
|
| 23 |
-
|
| 24 |
-
jobs:
|
| 25 |
-
# Single deploy job since we're just deploying
|
| 26 |
-
deploy:
|
| 27 |
-
environment:
|
| 28 |
-
name: github-pages
|
| 29 |
-
url: ${{ steps.deployment.outputs.page_url }}
|
| 30 |
-
runs-on: ubuntu-latest
|
| 31 |
-
steps:
|
| 32 |
-
- name: Checkout
|
| 33 |
-
uses: actions/checkout@v4
|
| 34 |
-
- name: Setup Pages
|
| 35 |
-
uses: actions/configure-pages@v5
|
| 36 |
-
- name: Upload artifact
|
| 37 |
-
uses: actions/upload-pages-artifact@v3
|
| 38 |
-
with:
|
| 39 |
-
# Upload entire repository
|
| 40 |
-
path: '.'
|
| 41 |
-
- name: Deploy to GitHub Pages
|
| 42 |
-
id: deployment
|
| 43 |
-
uses: actions/deploy-pages@v5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.github/workflows/test.yml
DELETED
|
@@ -1,27 +0,0 @@
|
|
| 1 |
-
name: ci
|
| 2 |
-
on:
|
| 3 |
-
push:
|
| 4 |
-
branches: ["**"]
|
| 5 |
-
pull_request:
|
| 6 |
-
branches: [main]
|
| 7 |
-
jobs:
|
| 8 |
-
test:
|
| 9 |
-
runs-on: ubuntu-latest
|
| 10 |
-
timeout-minutes: 10
|
| 11 |
-
steps:
|
| 12 |
-
- uses: actions/checkout@v4
|
| 13 |
-
- uses: actions/setup-python@v5
|
| 14 |
-
with:
|
| 15 |
-
python-version: "3.11"
|
| 16 |
-
cache: pip
|
| 17 |
-
- name: install core deps
|
| 18 |
-
run: pip install loguru python-dotenv requests fastapi pydantic neo4j networkx jinja2 pytest
|
| 19 |
-
- name: syntax check
|
| 20 |
-
run: |
|
| 21 |
-
FAIL=0
|
| 22 |
-
for f in $(find . -name "*.py" -not -path "./venv/*" -not -path "./.git/*"); do
|
| 23 |
-
python -m py_compile "$f" || { echo "FAIL $f"; FAIL=1; }
|
| 24 |
-
done
|
| 25 |
-
exit $FAIL
|
| 26 |
-
- name: run tests
|
| 27 |
-
run: pytest tests/ -v --tb=short || true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data/processed/dossier_Sample_Politician_20260401_131217.html
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<title>BharatGraph Investigation Dossier</title>
|
| 6 |
+
<style>
|
| 7 |
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
| 8 |
+
body { font-family: "DejaVu Sans", Arial, sans-serif; font-size: 11px; color: #1a1a2e; background: white; }
|
| 9 |
+
.cover { page-break-after: always; min-height: 297mm; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 40mm 30mm; border-bottom: 6px solid #FF9933; }
|
| 10 |
+
.cover-logo { font-size: 28px; font-weight: bold; color: #138808; letter-spacing: 3px; margin-bottom: 8px; }
|
| 11 |
+
.cover-tagline { font-size: 11px; color: #666; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 40px; }
|
| 12 |
+
.cover-title { font-size: 22px; font-weight: bold; color: #0A0F2E; text-align: center; margin-bottom: 8px; }
|
| 13 |
+
.cover-entity { font-size: 16px; color: #FF9933; text-align: center; margin-bottom: 40px; }
|
| 14 |
+
.cover-meta { font-size: 9px; color: #888; text-align: center; line-height: 1.8; margin-bottom: 30px; }
|
| 15 |
+
.cover-hash { font-family: "Courier New", monospace; font-size: 9px; background: #f5f5f5; padding: 8px 16px; border: 1px solid #ddd; border-radius: 3px; word-break: break-all; text-align: center; max-width: 400px; }
|
| 16 |
+
.cover-hash-label { font-size: 8px; color: #999; text-align: center; margin-top: 4px; }
|
| 17 |
+
.disclaimer-box { margin-top: 40px; padding: 12px 20px; border: 1px solid #FF9933; border-radius: 3px; font-size: 9px; color: #666; text-align: center; max-width: 450px; }
|
| 18 |
+
.section { page-break-inside: avoid; padding: 16px 24px; margin-bottom: 16px; }
|
| 19 |
+
.section-header { font-size: 13px; font-weight: bold; color: white; background: #0A0F2E; padding: 8px 16px; margin-bottom: 12px; border-left: 4px solid #FF9933; }
|
| 20 |
+
.section-content { line-height: 1.7; }
|
| 21 |
+
.subsection-title { font-size: 10px; font-weight: bold; color: #138808; margin: 10px 0 4px 0; text-transform: uppercase; letter-spacing: 1px; }
|
| 22 |
+
table { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: 9px; }
|
| 23 |
+
th { background: #0A0F2E; color: white; padding: 6px 8px; text-align: left; font-weight: normal; }
|
| 24 |
+
td { padding: 5px 8px; border-bottom: 1px solid #eee; }
|
| 25 |
+
tr:nth-child(even) td { background: #f9f9f9; }
|
| 26 |
+
.risk-badge { display: inline-block; padding: 3px 10px; border-radius: 3px; font-size: 10px; font-weight: bold; }
|
| 27 |
+
.risk-LOW { background: #d4edda; color: #155724; }
|
| 28 |
+
.risk-MODERATE { background: #fff3cd; color: #856404; }
|
| 29 |
+
.risk-HIGH { background: #f8d7da; color: #721c24; }
|
| 30 |
+
.risk-VERY_HIGH { background: #f5c6cb; color: #491217; }
|
| 31 |
+
.finding-item { padding: 8px 12px; margin: 6px 0; border-left: 3px solid #FF9933; background: #fffaf5; }
|
| 32 |
+
.finding-HIGH { border-left-color: #dc3545; background: #fff5f5; }
|
| 33 |
+
.finding-MODERATE { border-left-color: #ffc107; background: #fffdf5; }
|
| 34 |
+
.finding-LOW { border-left-color: #28a745; background: #f5fff8; }
|
| 35 |
+
.evidence-item { padding: 6px 10px; margin: 4px 0; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 2px; font-size: 9px; }
|
| 36 |
+
.doubt-item { padding: 8px 12px; margin: 6px 0; border-left: 3px solid #6c757d; background: #f8f9fa; font-style: italic; }
|
| 37 |
+
.positive-item { padding: 6px 10px; margin: 4px 0; border-left: 3px solid #28a745; background: #f5fff8; }
|
| 38 |
+
.timeline-item { display: flex; padding: 6px 0; border-bottom: 1px solid #eee; }
|
| 39 |
+
.timeline-date { width: 100px; font-size: 9px; color: #666; flex-shrink: 0; }
|
| 40 |
+
.timeline-event { font-size: 10px; }
|
| 41 |
+
.page-footer { position: fixed; bottom: 0; left: 0; right: 0; font-size: 8px; color: #aaa; text-align: center; padding: 4px; border-top: 1px solid #eee; }
|
| 42 |
+
.score-bar-container { margin: 8px 0; }
|
| 43 |
+
.score-bar { height: 12px; background: #eee; border-radius: 6px; overflow: hidden; }
|
| 44 |
+
.score-fill { height: 100%; border-radius: 6px; }
|
| 45 |
+
.score-fill-LOW { background: #28a745; }
|
| 46 |
+
.score-fill-MODERATE { background: #ffc107; }
|
| 47 |
+
.score-fill-HIGH { background: #fd7e14; }
|
| 48 |
+
.score-fill-VERY_HIGH { background: #dc3545; }
|
| 49 |
+
.metadata-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0; }
|
| 50 |
+
.metadata-item { padding: 6px 10px; background: #f8f9fa; border-radius: 2px; }
|
| 51 |
+
.metadata-label { font-size: 8px; color: #666; text-transform: uppercase; }
|
| 52 |
+
.metadata-value { font-size: 10px; font-weight: bold; color: #1a1a2e; }
|
| 53 |
+
h1 { font-size: 16px; margin-bottom: 12px; color: #0A0F2E; }
|
| 54 |
+
h2 { font-size: 12px; margin: 10px 0 6px 0; color: #138808; }
|
| 55 |
+
p { margin-bottom: 6px; }
|
| 56 |
+
.source-chip { display: inline-block; padding: 2px 6px; background: #e9ecef; border-radius: 2px; font-size: 8px; color: #495057; margin: 2px; }
|
| 57 |
+
</style>
|
| 58 |
+
</head>
|
| 59 |
+
<body>
|
| 60 |
+
|
| 61 |
+
<div class="cover">
|
| 62 |
+
<div class="cover-logo">BHARATGRAPH</div>
|
| 63 |
+
<div class="cover-tagline">Public Transparency Intelligence Platform</div>
|
| 64 |
+
<div class="cover-title">Investigation Dossier</div>
|
| 65 |
+
<div class="cover-entity">Sample Politician</div>
|
| 66 |
+
<div class="cover-meta">
|
| 67 |
+
Entity Type: Unknown<br>
|
| 68 |
+
Entity ID: sample_entity_001<br>
|
| 69 |
+
Generated: 2026-04-01 13:12:17<br>
|
| 70 |
+
Investigators: 12<br>
|
| 71 |
+
Evidence Items: 2
|
| 72 |
+
</div>
|
| 73 |
+
<div class="cover-hash">2ecfac724433f5908387a69687cae54dc63294f14271abf287f21680d217d22a</div>
|
| 74 |
+
<div class="cover-hash-label">SHA-256 Report Integrity Hash β verify at bharatgraph.in/verify/2ecfac724433f590</div>
|
| 75 |
+
<div class="disclaimer-box">
|
| 76 |
+
This dossier is generated from official public records only. Every claim is linked to a primary source document.
|
| 77 |
+
This is an analytical report. It does not constitute a legal finding, accusation, or determination of guilt.
|
| 78 |
+
The subject of this report has the right to submit corrections through the BharatGraph platform.
|
| 79 |
+
</div>
|
| 80 |
+
</div>
|
| 81 |
+
|
| 82 |
+
<div class="section">
|
| 83 |
+
<div class="section-header">Section 1 β Identity and Overview</div>
|
| 84 |
+
<div class="section-content">
|
| 85 |
+
<div class="metadata-grid">
|
| 86 |
+
<div class="metadata-item">
|
| 87 |
+
<div class="metadata-label">Full Name</div>
|
| 88 |
+
<div class="metadata-value">Sample Politician</div>
|
| 89 |
+
</div>
|
| 90 |
+
<div class="metadata-item">
|
| 91 |
+
<div class="metadata-label">Entity Type</div>
|
| 92 |
+
<div class="metadata-value">Unknown</div>
|
| 93 |
+
</div>
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
</div>
|
| 97 |
+
</div>
|
| 98 |
+
</div>
|
| 99 |
+
|
| 100 |
+
<div class="section">
|
| 101 |
+
<div class="section-header">Section 2 β Structural Risk Indicator</div>
|
| 102 |
+
<div class="section-content">
|
| 103 |
+
<div class="metadata-grid">
|
| 104 |
+
<div class="metadata-item">
|
| 105 |
+
<div class="metadata-label">Risk Score</div>
|
| 106 |
+
<div class="metadata-value">0 / 100</div>
|
| 107 |
+
</div>
|
| 108 |
+
<div class="metadata-item">
|
| 109 |
+
<div class="metadata-label">Risk Level</div>
|
| 110 |
+
<div class="metadata-value">
|
| 111 |
+
<span class="risk-badge risk-UNKNOWN">UNKNOWN</span>
|
| 112 |
+
</div>
|
| 113 |
+
</div>
|
| 114 |
+
</div>
|
| 115 |
+
<div class="score-bar-container">
|
| 116 |
+
<div class="score-bar">
|
| 117 |
+
<div class="score-fill score-fill-UNKNOWN" style="width: 0%"></div>
|
| 118 |
+
</div>
|
| 119 |
+
</div>
|
| 120 |
+
<p style="margin-top:8px; font-size:10px; color:#666;">
|
| 121 |
+
This score is derived from structural patterns in official data.
|
| 122 |
+
It is an analytical indicator, not a legal determination.
|
| 123 |
+
</p>
|
| 124 |
+
</div>
|
| 125 |
+
</div>
|
| 126 |
+
|
| 127 |
+
<div class="section">
|
| 128 |
+
<div class="section-header">Section 3 β Analytical Findings</div>
|
| 129 |
+
<div class="section-content">
|
| 130 |
+
|
| 131 |
+
<div class="subsection-title">Agreed Findings (confirmed by multiple investigators)</div>
|
| 132 |
+
|
| 133 |
+
<div class="finding-item finding-HIGH">
|
| 134 |
+
<strong>[HIGH]</strong> Entity linked to 3 contracts totalling Rs 150 Cr.
|
| 135 |
+
|
| 136 |
+
<div style="margin-top:4px;">
|
| 137 |
+
|
| 138 |
+
<span class="source-chip">Contract order from GeM</span>
|
| 139 |
+
|
| 140 |
+
</div>
|
| 141 |
+
|
| 142 |
+
</div>
|
| 143 |
+
|
| 144 |
+
|
| 145 |
+
</div>
|
| 146 |
+
</div>
|
| 147 |
+
|
| 148 |
+
<div class="section">
|
| 149 |
+
<div class="section-header">Section 4 β Doubts and Unexplained Patterns</div>
|
| 150 |
+
<div class="section-content">
|
| 151 |
+
|
| 152 |
+
|
| 153 |
+
<div class="doubt-item">
|
| 154 |
+
<strong>Hypothesis:</strong> Company directorships exist but no matching contracts found.<br>
|
| 155 |
+
<strong>Data Gap:</strong> Possible CPPP data coverage gap<br>
|
| 156 |
+
<strong>Recommended Action:</strong> Cross-reference with CPPP tender awards
|
| 157 |
+
</div>
|
| 158 |
+
|
| 159 |
+
|
| 160 |
+
</div>
|
| 161 |
+
</div>
|
| 162 |
+
|
| 163 |
+
<div class="section">
|
| 164 |
+
<div class="section-header">Section 5 β Positive Contributions</div>
|
| 165 |
+
<div class="section-content">
|
| 166 |
+
|
| 167 |
+
|
| 168 |
+
<div class="positive-item">Party affiliation recorded providing public accountability.</div>
|
| 169 |
+
|
| 170 |
+
<div class="positive-item">No matches found in ICIJ Offshore Leaks database.</div>
|
| 171 |
+
|
| 172 |
+
|
| 173 |
+
</div>
|
| 174 |
+
</div>
|
| 175 |
+
|
| 176 |
+
<div class="section">
|
| 177 |
+
<div class="section-header">Section 6 β Timeline of Events</div>
|
| 178 |
+
<div class="section-content">
|
| 179 |
+
|
| 180 |
+
|
| 181 |
+
<div class="timeline-item">
|
| 182 |
+
<div class="timeline-date">2022-04-15</div>
|
| 183 |
+
<div class="timeline-event">
|
| 184 |
+
<strong>Contract Awarded</strong> β Rs 50 Cr from Ministry of Rural Development
|
| 185 |
+
<span class="source-chip">GeM</span>
|
| 186 |
+
</div>
|
| 187 |
+
</div>
|
| 188 |
+
|
| 189 |
+
|
| 190 |
+
</div>
|
| 191 |
+
</div>
|
| 192 |
+
|
| 193 |
+
<div class="section">
|
| 194 |
+
<div class="section-header">Section 7 β Evidence Locker</div>
|
| 195 |
+
<div class="section-content">
|
| 196 |
+
<p style="margin-bottom:8px; font-size:9px; color:#666;">
|
| 197 |
+
All 2 primary source documents referenced in this report.
|
| 198 |
+
</p>
|
| 199 |
+
|
| 200 |
+
<div class="evidence-item">
|
| 201 |
+
<strong>Government e-Marketplace</strong> β Contract Order Records
|
| 202 |
+
| <a href="https://gem.gov.in">https://gem.gov.in</a>
|
| 203 |
+
| Date: 2022-04-15
|
| 204 |
+
</div>
|
| 205 |
+
|
| 206 |
+
<div class="evidence-item">
|
| 207 |
+
<strong>Election Commission of India</strong> β Candidate Affidavit
|
| 208 |
+
| <a href="https://myneta.info">https://myneta.info</a>
|
| 209 |
+
| Date: 2024-04-01
|
| 210 |
+
</div>
|
| 211 |
+
|
| 212 |
+
</div>
|
| 213 |
+
</div>
|
| 214 |
+
|
| 215 |
+
<div class="section">
|
| 216 |
+
<div class="section-header">Section 8 β Methodology and Data Sources</div>
|
| 217 |
+
<div class="section-content">
|
| 218 |
+
<p>This dossier was generated by the BharatGraph Multi-Investigator AI Engine.
|
| 219 |
+
12 specialist investigators analysed this entity in parallel,
|
| 220 |
+
each from an independent analytical angle. Every finding is backed by a primary
|
| 221 |
+
source document. No claims are made without evidence.</p>
|
| 222 |
+
<p style="margin-top:8px;">Data sources used in this analysis include official Indian government
|
| 223 |
+
records (ECI affidavits, MCA filings, GeM contracts, CAG audit reports, PIB press
|
| 224 |
+
releases, parliamentary records) and international datasets (OpenSanctions,
|
| 225 |
+
ICIJ Offshore Leaks, Wikidata).</p>
|
| 226 |
+
<p style="margin-top:8px; font-weight:bold; color:#dc3545;">
|
| 227 |
+
LEGAL DISCLAIMER: This report is generated from publicly available official records.
|
| 228 |
+
It does not constitute a legal finding, accusation, or determination of guilt.
|
| 229 |
+
The subject of this report has the right to submit corrections at bharatgraph.in.
|
| 230 |
+
</p>
|
| 231 |
+
</div>
|
| 232 |
+
</div>
|
| 233 |
+
|
| 234 |
+
<div class="page-footer">
|
| 235 |
+
BharatGraph Public Transparency Platform | Report Hash: 2ecfac724433f5908387a69687cae54d... | Generated: 2026-04-01 13:12:17
|
| 236 |
+
</div>
|
| 237 |
+
|
| 238 |
+
</body>
|
| 239 |
+
</html>
|