Real-time Threat Intelligence Dashboard
Built by CEO Joe Munene
SentinelPulse is an enterprise-grade cybersecurity threat intelligence dashboard designed for governments, NGOs, enterprises, and security teams. It provides real-time visibility into global cyber threats through a polished, dark-mode-first interface.
- π Real-time Threat Feed - Aggregated cybersecurity news and incidents
- πΊοΈ Global Threat Heatmap - Visual representation of incident density by region
- π Interactive Timeline - Chronological view of security incidents
- π Advanced Filtering - Filter by time range, severity, region, tags, and keywords
- π± Responsive Design - Works seamlessly on desktop, tablet, and mobile
- βΏ Accessible - WCAG-compliant with keyboard navigation and screen reader support
- π¨ Dark Mode - Tactical control-room aesthetic with high contrast
- React 18 - UI framework
- Vite - Build tool and dev server
- Tailwind CSS - Utility-first styling
- Framer Motion - Smooth animations
- Recharts - Data visualization
- React Window - Virtualized lists for performance
- Node.js 18+ and npm
- Clone or download this repository
- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser to
http://localhost:3000
The application will automatically open in your default browser.
To create a production build:
npm run buildThe optimized files will be in the dist/ directory.
To preview the production build:
npm run preview- Install Vercel CLI:
npm i -g vercel - Run
vercelin the project directory - Follow the prompts to deploy
Or connect your GitHub repository to Vercel for automatic deployments.
- Install Netlify CLI:
npm i -g netlify-cli - Run
netlify deployfor a draft, ornetlify deploy --prodfor production - Follow the prompts
Or drag and drop the dist/ folder to Netlify's dashboard.
Since this is a static site, you can deploy to any static hosting service:
- GitHub Pages
- AWS S3 + CloudFront
- Azure Static Web Apps
- Google Cloud Storage
- Any CDN or web server
Currently, the application uses mock data. To integrate real threat intelligence APIs:
- Read the API integration guide:
src/api/README_API.md - Set up API keys as environment variables (see below)
- Update
src/utils/mockApi.jsto use real API calls - Handle CORS issues (use a backend proxy for production)
Create a .env file in the project root:
# API Keys (replace with your actual keys)
VITE_NEWSAPI_KEY=your_newsapi_key_here
VITE_VIRUSTOTAL_KEY=your_virustotal_key_here
VITE_MISP_BASE_URL=https://your-misp-instance.com
VITE_MISP_API_KEY=your_misp_api_key
VITE_RECORDEDFUTURE_TOKEN=your_rf_token
# Feature flags
VITE_USE_REAL_API=falseImportant: Never commit .env files to version control. Add .env to .gitignore.
sentinelpulse/
βββ public/ # Static assets
β βββ index.html # HTML template
β βββ favicon.svg # Favicon
β βββ manifest.json # PWA manifest
βββ src/
β βββ components/ # React components
β β βββ Nav.jsx
β β βββ HeroSummary.jsx
β β βββ NewsFeed.jsx
β β βββ ThreatCard.jsx
β β βββ ArticleModal.jsx
β β βββ FiltersPanel.jsx
β β βββ MetricCounters.jsx
β β βββ IncidentTimeline.jsx
β β βββ HeatmapGlobe.jsx
β β βββ Footer.jsx
β βββ data/ # Mock data
β β βββ sampleNews.json
β β βββ sampleIncidents.json
β βββ api/ # API integration docs
β β βββ README_API.md
β βββ utils/ # Utility functions
β β βββ formatters.js
β β βββ mockApi.js
β βββ App.jsx # Main app component
β βββ main.jsx # Entry point
β βββ index.css # Global styles
βββ package.json
βββ vite.config.js
βββ tailwind.config.js
βββ README.md
Update contact details in:
src/components/Footer.jsxsrc/components/App.jsx(About section)public/index.html(meta tags)
Edit tailwind.config.js to customize the color palette and fonts.
Modify src/data/sampleNews.json and src/data/sampleIncidents.json to add or change mock entries.
- Semantic HTML elements
- ARIA labels and roles
- Keyboard navigation support
- Screen reader compatibility
- Reduced motion support
- High contrast colors
- Virtualized lists for long feeds
- Lazy loading for heavy components
- Optimized bundle size with Vite
- Code splitting
- Image optimization
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
This project is proprietary and owned by CEO Joe Munene.
For questions or support:
- Email: joemunene984@gmail.com
- Phone: +254 718 733 968
This dashboard uses mock data for demonstration purposes. All threat intelligence data is fabricated and should not be used for real-world security decisions. When integrating real APIs, ensure proper data validation and security measures are in place.
Built with β€οΈ by CEO Joe Munene.