This is a Cyber Threat Intelligence dashboard developed as part of the AppSec Intern Assignment for Asquare Ideas.
- Clone the repository:
git clone https://github.com/yourusername/cti-dashboard.git
cd cti-dashboard- Set up your environment:
- Create a
.envfile with the following keys:
ABUSEIPDB_API_KEY=your_key
OTX_API_KEY=your_key
VIRUSTOTAL_API_KEY=your_key
- Install backend dependencies and run the FastAPI server:
pip install -r requirements.txt
uvicorn main:app --reload- Open the frontend:
Open
index.htmlin your browser. Ensure the backend is running athttp://localhost:8000.
- Data normalization: All CTI sources are normalized into a unified schema
- Frontend: Built with HTML, Bootstrap 5, JavaScript, Chart.js, CountUp.js
- Filtering: Supports filtering by severity and source
- Search: Live search across indicators (IP, hash)
- Pagination: 25 results per page with jump-to-page input and keyboard navigation
- Auto-refresh: Toggleable auto-refresh every 30 seconds
- Theme toggle: Fully responsive dark/light mode
- Visualization: Pie and bar charts for source and severity breakdown
- VirusTotal Lookup: Real-time IP lookup with JSON viewer, severity badge, VT link, and copy-to-clipboard
- Error handling: Source failures are reported via Bootstrap toast notifications
- ✅ Working application (local + GitHub Pages frontend)
- ✅ GitHub repository with all code and documentation
- ✅ README (this file)