Team: CodeCrafters | Event: IntrusionX Second Edition — Cyberonites, GLA University
VulnMonitor is a full-stack web application that automatically fetches, deduplicates, and displays CVE (Common Vulnerabilities & Exposures) data from the NIST National Vulnerability Database. It provides real-time alerts for critical threats and a clean cyberpunk-styled dashboard for security teams.
| Layer | Technology |
|---|---|
| Frontend | HTML5, CSS3, Vanilla JavaScript |
| Backend | Python 3, Flask, Flask-CORS |
| Database | Supabase |
| Data Sources | NVD REST API (nvd.nist.gov), CVE feeds |
| Scheduler | APScheduler (Cron Jobs, auto-fetch) |
| Deployment | Render |
- Python 3.8+
- Any modern browser
cd backend
pip install -r requirements.txt
python app.pyThe backend starts on http://localhost:5000 and automatically fetches the last 7 days of CVE data on first run.
Open frontend/index.html in your browser — no build step needed.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/vulnerabilities |
List CVEs (paginated, filtered) |
| GET | /api/vulnerabilities/<cve_id> |
Get single CVE details |
| GET | /api/stats |
Dashboard statistics |
| GET | /api/alerts |
Security alerts |
| POST | /api/alerts/<id>/read |
Mark alert as read |
| POST | /api/alerts/read-all |
Mark all alerts as read |
| POST | /api/fetch |
Trigger manual CVE sync |
| GET | /api/fetch-log |
Fetch history log |
| GET | /api/health |
Health check |
severity— CRITICAL | HIGH | MEDIUM | LOWsearch— Full-text search on CVE ID or descriptionpage,per_page— Paginationsort_by— cve_id | cvss_score | publishedorder— asc | desc
- 🔄 Auto-sync — APScheduler fetches new CVEs every hour via NVD REST API
- 🔍 Smart deduplication — MD5 hash-based deduplication prevents duplicates
- 📊 Dashboard — Stats cards, donut chart, 7-day trend, top affected products
- 🚨 Real-time alerts — Instant alerts for CRITICAL and HIGH severity CVEs
- 🔎 Search & Filter — Search by CVE ID or description, filter by severity
- 📋 CVE Detail Modal — Full details with CVSS score bar, vector, references
- 📡 Fetch Log — History of all data sync operations
- 📱 Responsive — Mobile-friendly sidebar + layout
vuln-monitor/
├── backend/
│ ├── app.py # Flask API server
│ ├── requirements.txt # Python dependencies
│ └── vulnerabilities.db # SQLite database (auto-created)
├── frontend/
│ └── index.html # Complete SPA (HTML + CSS + JS)
├── start.sh # One-command startup script
└── README.md
- All CVE data sourced from NIST NVD — authoritative, government-maintained
- CORS configured for local development; restrict in production
- SQLite is sufficient for prototype; PostgreSQL recommended for production scale
- NVD — National Vulnerability Database
- NIST CVE API Docs
- MITRE CVE Program
- CVSS Scoring System
- OWASP Top 10 (2023)
- IEEE 2020 — "Automated Vulnerability Detection in Source Code"
- Existing tools studied: Shodan, Snyk, OpenCVE
Built with ❤️ by Team CodeCrafters for IntrusionX SE | Cyberonites
- Go to https://console.groq.com → sign up free
- Create an API key
- Set before running backend:
# Windows set GROQ_API_KEY=gsk_your_key_here # Mac / Linux export GROQ_API_KEY=gsk_your_key_here
- AI Risk Scoring — Click "Analyse with AI" on any CVE modal → Groq LLaMA 3 explains the risk in plain English, describes a realistic attack scenario, and gives patch advice
- Asset Radar — Enter your tech stack (apache, windows, php…) → AI scans all CVEs and returns only threats that affect YOUR environment
- PDF Export — Export any single CVE or the full Asset Radar report as a professional PDF