ThreatLens Live Cyber Threat Intelligence Dashboard

ThreatLens Live Cyber Threat Intelligence Dashboard

A working SOC dashboard that pulls real CVEs, malware hashes and malicious IPs from five live threat feeds, maps them by country, and explains each one in plain English using AI. Django source code included.

Technology Used

Django | HTMX | Chart.js | Leaflet.js | Celery | Redis | SQLite | Groq API | Python

codeAj
codeAjVerified
🏆5K+ Projects Sold
Google Review
3991999

Get complete project source code + Installation guide + chat support

Project Files

Get Project Files

What This Project Actually Does

ThreatLens is a security operations dashboard. It goes out to five public threat intelligence sources — NVD for CVEs, CISA's Known Exploited Vulnerabilities catalog, MITRE ATT&CK, MalwareBazaar for malware samples, and AbuseIPDB for malicious IPs — pulls all of that into one SQLite database, and then shows it to you as a single live feed instead of five browser tabs.

That's the whole idea. Instead of an analyst checking NVD in the morning, then CISA, then abuse.ch, then wondering which country all those bad IPs are coming from, everything lands in one dark-themed screen that refreshes itself every 30 seconds.

And it's real data. Not seeded dummy rows. When you run python manage.py fetch_nvd_cves, the CVEs that land in your table are the ones that were actually disclosed this week. Your examiner can pick any CVE ID off your screen, Google it, and it'll be there. That single fact does more for your viva than any amount of UI polish.

Key Features

Live feed that updates without a page reload

The dashboard polls every 30 seconds using HTMX. New indicators of compromise slide in at the top while you're looking at the screen. No React, no build step, no npm install taking twenty minutes — just Django templates and an HTMX attribute.

Five ingestion commands, all idempotent

Each feed is its own management command: fetch_nvd_cves, fetch_cisa_kev, fetch_mitre_attack, fetch_malwarebazaar, fetch_abuseipdb. Plus fetch_all_feeds which runs the lot in sequence. Every one of them upserts on the source's own ID, so you can run them fifty times and never get a duplicate row. Which matters more than it sounds like it does, because you will run them fifty times while testing.

Type-ahead IOC search

Type an IP, a file hash, a domain, or a CVE number into the search box and results appear as you type — debounced, HTMX-driven, filtered by IOC type with pill buttons. This is the feature that sells the project during a demo. Paste in a hash, get an instant hit.

Country threat map

A Leaflet choropleth that colour-scales each country by how many threats have been geolocated there. Hover any country and you get a tooltip with the count. Red blobs over the usual suspects, and a live summary count above it.

Malware trend charts

Chart.js visualisations showing the top malware families from MalwareBazaar over the past six months, plus a weekly frequency timeline so you can see which families are actually spiking right now versus which ones are old news.

Attack timeline with MITRE tactic filtering

Chronological view of every ingested threat, filterable by MITRE ATT&CK tactic, with HTMX infinite scroll. Scroll down, more loads. No pagination buttons.

AI summaries in plain English

Click the AI Summary button on any threat card and the Groq API returns a short explanation — what the threat is, why it matters, who's likely affected. The result gets cached on the record, so it only ever gets generated once per threat and never burns your API quota twice for the same CVE.

Sidebar filters that follow you around

Filter by source, severity, date range (24 hours, 7 days, 30 days, all time), and MITRE tactic. Whatever you set carries across to the feed, the search results, and the timeline automatically — you don't have to re-apply it on every screen.

Threat detail pages with the raw payload

Click through any IOC and you get full metadata plus the original JSON exactly as it came off the feed. Examiners love this. It proves the data is genuinely external and not something you typed into the admin panel the night before.

Auth-gated, single-analyst access

Django's built-in authentication guards every single view. Nothing is public. Log in as your superuser, and that's it.

How the Data Pipeline Actually Works

Worth understanding this bit properly, because it's the part you'll be asked about.

Each management command hits its source's API, normalises whatever shape that source returns into a common ThreatEvent model, and writes it with an upsert keyed on source_id. fetch_mitre_attack is the odd one out — it doesn't create threat events at all. It syncs the Enterprise ATT&CK STIX bundle into a separate MitreTechnique reference table, which is what powers the tactic filters and the human-readable tactic labels everywhere else.

Then Celery and django-celery-beat wrap those same commands as scheduled tasks running every 15 to 30 minutes. The schedule lives in the database, not in code, so you can change the interval from the Django admin at /admin/django_celery_beat/periodictask/ without touching a file or restarting anything.

The nice part: the scheduler is optional. Every command runs standalone. So for your college demo you can just run fetch_all_feeds beforehand, skip Celery entirely, and everything still works.

Real-World Applications

  • SOC triage — one screen for newly disclosed CVEs, actively exploited vulnerabilities, and fresh malicious infrastructure, instead of five separate feeds.
  • Patch prioritisation — cross-reference CVSS severity against CISA KEV status to figure out what genuinely needs patching this week versus next month.
  • Incident response lookups — an IP shows up in your firewall logs at 2 AM; search it here and find out in two seconds whether it's already a tracked threat.
  • Malware trend reporting — pull the top families chart for a weekly security briefing.
  • Junior analyst onboarding — the AI summaries turn terse CVE descriptions into something a first-week analyst can actually understand.
  • Small teams without budget — commercial threat intel platforms cost real money. This runs on SQLite, free public feeds, and Groq's free tier.

The Honest Bit: One Hard Thing, One Easy Thing

The hard part is Redis and Celery on Windows. Celery dropped proper Windows support a while back, and getting the worker and beat processes talking to a local Redis on a Windows laptop is genuinely the most annoying hour of this whole setup. Our fix is simple — don't fight it. Run the fetch commands manually for your demo, and only set up Celery if you're deploying to a Linux VPS or you specifically want the automation in your report. We've documented both paths.

The easy part is everything else. There's no frontend build pipeline. No webpack, no Node, no npm. HTMX is a single script tag, Chart.js and Leaflet are CDN links, and the whole UI is Django templates. If you know how to write a Django view and a template, you already know how to modify this entire project. Most students get it running locally in under twenty minutes, API keys included.

Who Should Buy This

If you're a student who needs a working project for your college submission, final-year project, semester project, internship, or academic demonstration, this is for you. Whether you're studying BCA, B.Tech, MCA, M.Tech, Computer Science, IT, AI, Data Science, or another related field, you can choose a project that fits your requirements. If you need the source code, project report, documentation, or help setting up and running the project, CodeAj gives you the resources and support to get started faster.

Especially relevant if your specialisation is security. Most cyber security final year projects submitted in India are keyloggers, password strength checkers, or a Caesar cipher with a Tkinter window. This is a real threat intelligence platform pulling live government and industry feeds. The gap is noticeable.

Why CodeAj

You get the complete source code — every view, every management command, every template, the Celery config, the systemd unit files, the Nginx site config, all of it. The project report and documentation come with it, written to match what Indian university submission formats actually ask for, and if the setup gives you trouble we'll get on a call and sort it out rather than pointing you at a README. Browse more cyber security final year projects if you want to compare options first, or check the full Django projects with source code collection — ThreatLens fits right in with the rest of the stack there. Students on the B.Tech CSE track usually start from the B.Tech CSE final year projects hub.

Frequently Asked Questions

You will get the complete source code along with an installation guide and chat support to help you set up and understand the project.
All our projects are thoroughly tested multiple times, so the code is completely error-free. But in case you still face any issue, you can reach out to us on WhatsApp (+91 8603862290) and we will fix it and provide you the updated code.
You can book a 1-on-1 Setup & Explanation Session where we connect via AnyDesk and Google Meet, set up the project on your laptop, and explain the complete code working and flow.
No, you cannot re-sell the project. This is completely illegal and a violation of our terms. If we find any such activity, we will take legal action.
It's completely real. The ingestion commands hit the actual NVD, CISA KEV, MITRE ATT&CK, MalwareBazaar and AbuseIPDB endpoints and store whatever comes back. Pick any CVE ID off your dashboard, search it on the NVD website, and it'll be there with the same severity score. There are no fixtures and no fake rows anywhere in this project. Honestly, this is the single strongest thing you've got going into a viva.
Nope. Celery only automates the refresh schedule. Every feed is also a standalone management command, so run python manage.py fetch_all_feeds an hour before your demo, keep just runserver going, and the dashboard behaves exactly the same. Set up Celery if you want the automation section in your report to be backed by something real. Otherwise skip it and save yourself the Windows headache.
Ingest everything at home first. It all gets written into db.sqlite3, so the feed, search, map, charts and timeline work perfectly offline after that. Only two things need internet: pulling new threats, and the AI Summary button. So generate summaries for four or five threats beforehand — they get cached on the record — and those will still open fine with the wifi down.
Zero. NVD, CISA KEV and MITRE ATT&CK need no key at all. MalwareBazaar wants a free abuse.ch account because they made auth mandatory for every request recently. AbuseIPDB has a free tier with a daily cap you'll never come close to hitting on a student project. Groq's free tier handles the AI summaries. Total spend across the whole project: nothing.
Tell him the truth. The entire app is server-rendered data views, and HTMX gives you live polling, type-ahead search and infinite scroll in about fifteen template attributes with no build step, no bundle and no second server to run. That's an engineering trade-off you can defend for five minutes straight. Most examiners respect a reasoned choice more than a React SPA that took three weeks to wire up.
Yes, and this is genuinely the easiest way to make it yours. Copy any file out of threats/management/commands/fetch_*.py, swap the API call and the field mapping so it writes into the ThreatEvent model, keep the upsert on source_id, and you're done. Add your new source name to the sidebar filter list and it shows up across the feed, search and timeline automatically. Takes an evening.
It is. These feeds exist specifically so defenders can consume them programmatically — NVD and CISA are US government sources published for public use, and MalwareBazaar and AbuseIPDB both hand out documented APIs with free tiers for exactly this kind of thing. The project uses official endpoints. There's no scraping anywhere in the codebase, which is also a nice line to have in your report.
Yeah. Report comes with the source code — system architecture, the data ingestion pipeline, ER and data flow diagrams, module breakdowns, testing sections, laid out the way most Indian universities want it. If your college has its own template or a weird chapter structure, send it across and we'll help you fit the content into it. Same for any setup trouble.
Installation Guide

Extra Add-Ons Available – Elevate Your Project

Add any of these professional upgrades to save time and impress your evaluators.

Project Setup

We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).

Source Code Explanation

1-hour live session to explain logic, flow, database design, and key features.

Want to know exactly how the setup works? Review our detailed step-by-step process before scheduling your session.

999

Custom Documents (College-Tailored)

  • Custom Project Report: ₹1,500
  • Custom Research Paper: ₹1,000
  • Custom PPT: ₹800

Fully customized to match your college format, guidelines, and submission standards.

Project Modification

Need feature changes, UI updates, or new features added?

Charges vary based on complexity.

We'll review your request and provide a clear quote before starting work.

Project Files

GoogleReviews

What Our Students Say

4.9(38+ reviews)
Google review 1
Google review 2
Google review 3
Google review 4
Google review 5
Google review 6
Google review 7
Google review 8
Google review 9
Google review 10
Google review 11
Google review 12
Google review 13
Google review 14
Google review 15
Google review 16
Google review 17
Google review 18
Google review 19
Google review 20
Google review 21
Google review 22
Google review 23
Google review 24
Google review 25
Google review 26
Google review 27
Google review 28
Google review 29
Google review 30
Google review 31
Google review 32
Google review 33
Google review 34
Google review 35
Google review 36
Google review 37
Google review 38
⭐ 98% SUCCESS RATE
  • Full Development
  • Documentation
  • Presentation Prep
  • 24/7 Support