A Full-Stack Threat Intelligence Dashboard for IP Investigation
Aggregate intelligence from multiple OSINT providers, calculate custom threat scores, visualize geolocation, and generate downloadable investigation reportsβall from a single interface.
Frontend: https://threat-lens-five.vercel.app/
Backend API: https://threatlens-api-wtvp.onrender.com/
API Documentation (Swagger): https://threatlens-api-wtvp.onrender.com/docs
docs/screenshots/dashboard.png
ThreatLens combines multiple threat intelligence providers into a single investigation workflow.
- Multi-source IP enrichment
- Custom threat scoring engine
- Risk classification (Safe / Low / Medium / High / Critical)
- Actionable security recommendations
- Geolocation lookup
- Interactive Leaflet map
- ASN information
- Organization lookup
- Hostname resolution
- Historical search tracking
- Re-analyze previous investigations
- Analytics dashboard
- Bulk IP analysis
- CSV export
- PDF report generation
- Modern responsive UI
- Dark cybersecurity theme
- Interactive visualizations
- Real-time analysis
| Provider | Purpose |
|---|---|
| IPInfo | Geolocation, ASN, Organization |
| AbuseIPDB | Abuse reports and confidence score |
| VirusTotal | Malware and reputation analysis |
| GreyNoise | Internet background noise classification |
| Shodan | Open ports and exposed services |
React + TypeScript
β
βΌ
FastAPI REST Backend
β
βΌ
Threat Scoring Engine
β
ββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ
βΌ βΌ βΌ βΌ βΌ
IPInfo AbuseIPDB VirusTotal GreyNoise Shodan
β
βΌ
PostgreSQL (Neon)
- React
- TypeScript
- Vite
- Tailwind CSS
- React Leaflet
- React Router
- FastAPI
- SQLAlchemy
- Pydantic
- PostgreSQL (Neon)
- Vercel
- Render
- IPInfo
- AbuseIPDB
- VirusTotal
- GreyNoise
- Shodan
ThreatLens combines multiple intelligence sources into a single numerical risk score.
The scoring engine evaluates:
- Abuse confidence
- Malware detections
- Suspicious indicators
- Internet scanning activity
- Open services
- Exposed infrastructure
Based on these indicators, ThreatLens assigns one of five risk levels:
| Score | Risk |
|---|---|
| 0β20 | π’ Safe |
| 21β40 | π‘ Low |
| 41β60 | π Medium |
| 61β80 | π΄ High |
| 81β100 | β« Critical |
ThreatLens
β
βββ backend
β βββ api
β βββ database
β βββ schemas
β βββ services
β βββ config.py
β βββ main.py
β
βββ frontend
β βββ components
β βββ pages
β βββ services
β βββ hooks
β βββ types
β βββ assets
β
βββ docs
β
βββ README.md
Clone the repository.
git clone https://github.com/YOUR_USERNAME/ThreatLens.gitMove into the project.
cd ThreatLenscd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reloadBackend runs on
http://localhost:8000
Swagger
http://localhost:8000/docs
cd frontend
npm install
npm run devFrontend runs on
http://localhost:5173
Backend
DATABASE_URL=
IPINFO_TOKEN=
ABUSEIPDB_API_KEY=
VIRUSTOTAL_API_KEY=
GREYNOISE_API_KEY=
SHODAN_API_KEY=Frontend
VITE_API_BASE_URL=- IOC analysis (Domains, URLs, Hashes)
- AI-assisted investigation summaries
- User authentication
- Threat feed integrations
- Docker deployment
- SIEM integration
- Scheduled intelligence reports
- Real-time monitoring
- Threat actor attribution
Threat analysts often need to query multiple intelligence platforms individually, making investigations repetitive and time-consuming.
ThreatLens streamlines this workflow by aggregating intelligence from multiple providers into a single dashboard, automatically calculating a threat score, visualizing geolocation, and generating investigation reports.
The project demonstrates full-stack development, API integration, cybersecurity concepts, data visualization, and cloud deployment.
MS Information Technology & Management
Specialization in Computer & Information Security
Illinois Institute of Technology
GitHub: https://github.com/Samreen-Kazi
Portfolio: https://YOUR-PORTFOLIO
This project is licensed under the MIT License.








