Help Build SENTINEL : An Open Source AI Cyber Threat Portal Built with Node.js and Groq

 

We're Looking for Contributors Help Build SENTINEL, an Open Source AI Cyber Threat Portal

An open source military-style threat intelligence dashboard built with Node.js, PostgreSQL, and Groq AI — and we need your help to make it better


If you've been looking for an open source project to contribute to one that's visually impressive, technically interesting, and actually deployed in production  this might be it.

SENTINEL is an open source AI-powered cyber incident reporting and threat intelligence portal. It looks like something from a military operations centre, runs on a clean Node.js + PostgreSQL stack, and uses Groq AI (LLaMA 3.3 70B) for real-time incident triage.

Live demo: sentinel-sp7p.onrender.com GitHub: github.com/CosmicViraj/sentinel-cyber-portal


What Is SENTINEL?

SENTINEL simulates the kind of cyber incident management system a defence organisation might use. It features:

  • Real-time threat dashboard with animated global attack map
  • AI-driven incident triage — every new incident gets automatically analysed by Groq AI
  • Global threat map — live animated canvas showing attack vectors targeting UK infrastructure
  • Full incident registry with severity classification and status tracking
  • Role-based access control with 5 clearance levels (viewer → admin)
  • Immutable audit log for compliance tracking
  • Asset registry with health monitoring
  • Interactive AI chat SENTINEL AI assistant for threat intelligence queries

The UI is intentionally distinctive  dark military terminal aesthetic, monospace typography, blinking classification badges, animated attack lines. It's not your average dashboard.


Why Contribute to SENTINEL?

1. It's actually deployed and being used

This isn't a tutorial project that lives only in a GitHub repo. SENTINEL is live at sentinel-sp7p.onrender.com. Your contributions will be visible in a real running application.

2. The tech stack is approachable

  • Backend: Node.js + Express  no obscure frameworks
  • Database: PostgreSQL with straightforward SQL no ORM magic
  • Frontend: Vanilla HTML/CSS/JS  no React, no build step, no bundler
  • AI: Groq SDK simple API calls, well documented

If you know JavaScript, you can contribute. Period.

3. There are issues for every skill level

From complete beginners (CSS fixes, adding loading spinners) to advanced (WebSocket real-time alerts, RAG pipeline, pgvector embeddings) — there's something for everyone.

4. The codebase is clean and easy to navigate

sentinel-cyber-portal/
├── config/database.js       ← PostgreSQL connection (15 lines)
├── src/server.js            ← Express app entry (40 lines)
├── src/routes/              ← All API routes (self-contained)
├── src/services/ai.service.js ← Groq AI integration
├── scripts/migrate.js       ← Database schema
└── pages/                   ← Frontend HTML pages

No monorepo. No microservices. No mystery. You can understand the entire codebase in an afternoon.

5. It's a great portfolio piece

Contributing to a cybersecurity project with AI integration looks genuinely good on a CV. Especially one with a live demo and real users.


What We Need Help With

🟢 Beginner Friendly

Mobile Responsive Layout The dashboard looks great on desktop but needs work on mobile and tablet. Pure CSS/HTML task — no backend knowledge needed.

Loading States Add spinners and skeleton loaders while API calls are in progress. Great first issue for anyone learning JavaScript.

Form Validation Improvements Improve client-side validation on the incident report form, login page, and signup page.

404 / Error Pages Create styled error pages that match the SENTINEL military aesthetic.


🟡 Intermediate

Export Incidents to CSV Add a download button to the incident registry that exports filtered results as a CSV file.

Real-time WebSocket Alerts When a new critical incident is created, push a live notification to all connected dashboards using Socket.io.

Email Notifications Send email alerts for critical incidents using Nodemailer + an SMTP provider.

Session Timeout Auto logout users after a configurable period of inactivity.

Docker Support Add a Dockerfile and docker-compose.yml so contributors can run the full stack locally with one command.


🔴 Advanced

RAG Pipeline for Incident History Use pgvector to store incident embeddings and build a retrieval-augmented generation pipeline so the AI can answer questions using SENTINEL's own historical data as context.

Multi-Model AI Support Add support for Claude, Mistral, and OpenAI as alternative AI engines alongside Groq, with a model selector in the settings page.

Threat Intelligence Feed Integration Pull from AlienVault OTX and NVD CVE feeds, use AI to score relevance, and display in the threat map.

Two-Factor Authentication TOTP-based 2FA using an authenticator app.

AI-Generated PDF Reports Use Puppeteer to generate branded PDF incident reports with AI-written executive summaries.


How to Get Started

1. Fork and clone

git clone https://github.com/YOUR_USERNAME/sentinel-cyber-portal.git
cd sentinel-cyber-portal

2. Install dependencies

npm install

3. Set up environment

cp .env.example .env
# Fill in your DB credentials and Groq API key
# Free Groq key at console.groq.com

4. Run migrations and seed

npm run migrate
npm run seed

5. Start the dev server

npm run dev

Visit http://localhost:5000 — login with admin / Admin@Sentinel123

6. Pick an issue and get going

Browse the open issues, comment on one you want to work on, and open a PR when ready.

Full contribution guide: CONTRIBUTING.md


The Aesthetic — Please Match It

One thing worth mentioning: SENTINEL has a very specific visual identity. If you're working on frontend issues, please follow these guidelines:

  • Background: #030a0f — deep dark navy
  • Surface: #071420 — slightly lighter panel background
  • Accent: #00d4ff — cyan, used for highlights and active states
  • Danger: #ff3b3b — red for critical alerts
  • Warning: #ffb800 — amber for high severity
  • Success: #00ff9d — green for resolved/nominal
  • Monospace font: Share Tech Mono — for all data, labels, and codes
  • Display font: Barlow Condensed — for headings and buttons

All CSS variables are defined in index.html and reused across pages. Stick to them and your contribution will fit right in.


Default Credentials for Testing

Username Password Role
admin Admin@Sentinel123 Full access
analyst.patel Analyst@Sentinel123 Analyst access

Come Build With Us

SENTINEL is at an early stage and there's a lot of room to shape where it goes. Whether you want to fix a CSS bug, build a complex AI feature, or just give feedback — all contributions are welcome.

GitHub: github.com/CosmicViraj/sentinel-cyber-portal Live Demo: sentinel-sp7p.onrender.com Open Issues: github.com/CosmicViraj/sentinel-cyber-portal/issues

If you have questions, open a GitHub Discussion or drop a comment below. We'll get back to you.

Star ⭐ the repo if you find it interesting — it helps more developers discover the project.


— LearnFlow, creator of SENTINEL

Comments

Popular posts from this blog

Top 5 Programming Languages to Learn in 2025

How to Use ChatGPT and Other AI Tools for Content Creation

Top 5 Android Apps for Productivity in 2024