AI-first enterprise vulnerability intelligence platform with natural language querying, intelligent insights, RESTful API, and interactive dashboards.
An AI-first, Intelligence platform that transforms 10,094 HackerOne vulnerability reports into actionable insights through:
- AI Assistant - Natural language queries with intelligent SQL generation powered by OpenAI GPT-4o-mini
- Data-Driven Insights - Automated pattern detection, concentration analysis, and vulnerability trend identification
- Interactive Dashboard - Real-time analytics with 8 specialized pages and AI-powered exploration
- Secure REST API - JWT authentication with role-based access control
- High Performance - DuckDB-powered analytics with <100ms response times
- 10,094 Reports analyzed from HackerOne's disclosed reports dataset
- 344 Organizations tracked across the bug bounty ecosystem
- 3,895 Security Researchers contributing to platform security
- 151 Vulnerability Types identified and categorized
- 53.3% Bounty Rate indicating strong report quality
View Editable HLD Diagram (Open in draw.io)
View Editable LLD Diagram (Open in draw.io)
The LLD diagram shows:
- Database Schema: Star schema with fact and dimension tables
- Business Views: Pre-aggregated metrics for performance
- REST API Endpoints: All 15+ API routes with authentication
- Component Interactions: ELT pipeline, API, Dashboard, AI Engine
- Technology Stack: Complete tech stack with versions
Tech Stack: Python • FastAPI • Streamlit • DuckDB • OpenAI • Plotly • JWT
- Python 3.11+
- OpenAI API key (optional, for AI features)
# 1. Install dependencies
pip install -r requirements.txt
# 2. Run ELT pipeline (downloads 10,094 reports from HuggingFace)
python run_pipeline.py
# This will:
# - Download data from Hacker0x01/disclosed_reports (train split)
# - Create DuckDB database with star schema
# - Build dimension and fact tables
# - Generate business views for analytics
# 3. Configure AI (optional - required for AI Assistant)
cp .env.example .env
# Add your OPENAI_API_KEY to .envDashboard (Streamlit)
python run_dashboard.py
# → http://localhost:8501API Server (FastAPI)
python run_api.py
# → http://localhost:8000
# → http://localhost:8000/docs (Swagger UI)- Executive Dashboard - Comprehensive metrics, KPIs, and recent activity
- Threat Intelligence - Vulnerability analysis, attack patterns, and bounty economics
- Program Benchmarks - Organization performance comparison and maturity analysis
- Community Analytics - Researcher statistics, engagement metrics, and top performers
- Market Evolution - Temporal trends, volume analysis, and market dynamics
- Strategic Insights - Data-driven recommendations, concentration analysis, and ROI projections
- Security Reference - Vulnerability taxonomy, CWE mappings, and knowledge base
- Data Workbench - Advanced filtering, search, and CSV export capabilities
- AI Assistant - Natural language query interface with intelligent SQL generation
- Authentication - JWT-based login with role management
- Vulnerabilities - CRUD operations with filtering
- Organizations - Metrics and performance data
- Reporters - Researcher statistics
- Trends - Time-series and severity analysis
- AI Queries - Natural language to SQL conversion
- Admin - User management (admin-only)
Import the pre-configured Postman collection for instant API testing:
Collection Files:
- HackerOne_API_Collection.postman_collection.json - All 15+ API endpoints
- HackerOne_API_Environment.postman_environment.json - Environment variables
Import Steps:
- Open Postman
- Click Import → Select both JSON files
- Select the "HackerOne API" environment
- Run the Login request to get your token (auto-saved to environment)
- Test any endpoint - authentication is handled automatically!
# Login
curl -X POST "http://localhost:8000/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "admin123"}'
# Response: {"access_token": "eyJ...", "token_type": "bearer"}# Get all vulnerabilities
curl "http://localhost:8000/api/v1/vulnerabilities" \
-H "Authorization: Bearer YOUR_TOKEN"
# Get specific vulnerability
curl "http://localhost:8000/api/v1/vulnerabilities/SQL%20Injection" \
-H "Authorization: Bearer YOUR_TOKEN"
# AI-powered query
curl -X POST "http://localhost:8000/api/v1/query/nlp" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "Show me top 5 vulnerabilities"}'Interactive Docs: http://localhost:8000/docs
| Username | Password | Role | Access |
|---|---|---|---|
admin |
admin123 |
Admin | Full platform access |
mailru |
mailru123 |
Customer | Mail.ru data only |
shopify |
shopify123 |
Customer | Shopify data only |
The AI automatically distinguishes between data queries and conversational questions:
Data Queries (returns SQL + results)
"Show me vulnerabilities with high bounty rates"
"Which organizations have the best programs?"
"Top 5 critical vulnerabilities"
Conversational (returns explanations)
"What is this platform?"
"How does RBAC work?"
"Explain the data model"
- Smart Intent Detection - Automatically routes to appropriate handler
- SQL Generation - Converts natural language to DuckDB queries
- View-Aware - Uses optimized business views (vw_*)
- Context Memory - Remembers last 5 interactions
- RBAC Integration - Respects user permissions in queries
{
"query": "Show me top 5 vulnerabilities",
"sql_generated": "SELECT * FROM vw_vulnerability_metrics ORDER BY total_reports DESC LIMIT 5",
"results": [{"weakness_name": "XSS", "total_reports": 1234, ...}],
"explanation": "Found 5 vulnerabilities ordered by report count"
}Note: Requires OPENAI_API_KEY in .env
├── src/
│ ├── api/
│ │ ├── auth.py # JWT authentication & RBAC
│ │ ├── routes.py # API endpoints
│ │ ├── models.py # Pydantic schemas
│ │ └── main.py # FastAPI app
│ ├── ai/
│ │ └── nlp_query.py # AI query engine
│ ├── dashboard/
│ │ └── app.py # Streamlit dashboard
│ ├── elt/
│ │ ├── extract.py # Data extraction
│ │ ├── load.py # Data loading
│ │ └── transform.py # View creation
│ └── database/
│ ├── schema.py # Database schema
│ └── connection.py # DuckDB connection
├── data/
│ ├── raw/ # Source CSV files
│ └── hackerone.duckdb # Analytics database
├── docs/
│ └── ARCHITECTURE.md # Technical documentation
├── run_pipeline.py # Data pipeline runner
├── run_api.py # API server
└── run_dashboard.py # Dashboard server
- JWT Authentication - Secure token-based auth with expiration
- Role-Based Access Control - Admin vs. Customer permissions
- Data Isolation - Organizations see only their data
- SQL Injection Prevention - Parameterized queries and escaping
- Secrets Management - Environment-based configuration
| Metric | Value |
|---|---|
| Dataset Size | 10,094 reports |
| Organizations | 344 programs |
| Researchers | 3,895 contributors |
| Vulnerability Types | 151 distinct |
| Database Size | ~15MB (DuckDB) |
| API Response Time | <100ms avg |
| Dashboard Load | <2s |
| AI Query Time | 1-3s |
Top Vulnerabilities:
- Information Disclosure - 1,010 reports (10.0%)
- Cross-site Scripting (XSS) - Generic - 741 reports (7.3%)
- Violation of Secure Design Principles - 598 reports (5.9%)
- Improper Authentication - Generic - 528 reports (5.2%)
- Improper Access Control - Generic - 457 reports (4.5%)
Platform Statistics:
- Market Concentration: Top 3 vulnerabilities account for 29.1% of all reports
- Bounty Success Rate: 53.3% overall (5,383 bounties awarded)
- Active Organizations: 344 bug bounty programs
- Security Researchers: 3,895 contributors
- Vulnerability Diversity: 151 distinct weakness types
Data Source: HuggingFace dataset Hacker0x01/disclosed_reports (train split)
Backend
- FastAPI 0.104+ (REST API)
- DuckDB 0.9+ (Analytics Database)
- Python 3.11+ (Core Language)
Frontend
- Streamlit 1.29+ (Dashboard)
- Plotly (Visualizations)
AI/ML
- OpenAI GPT-4o-mini (NLP)
- Custom query detection engine
Security
- python-jose (JWT)
- passlib (Password hashing)
- API Docs: http://localhost:8000/docs (Swagger UI)
- Architecture: docs/ARCHITECTURE.md
- Technical & Functional Flow: docs/technical_and_functional_flow.md
Author: Hitesh Kumar
Date: March 2026
This project is built for educational and demonstration purposes.
Built with Python, FastAPI, Streamlit, DuckDB, and OpenAI

