π¨ Real-time Global Threat Monitoring System - A comprehensive intelligence dashboard for tracking geopolitical risks, security threats, and political instability worldwide.
![]()
This advanced threat intelligence dashboard provides real-time monitoring and analysis of global security threats, political instability, and geopolitical risks. Built with cutting-edge technologies and featuring a beautiful glassmorphism design, it transforms raw intelligence data into actionable insights.
π Real-time Intelligence Collection
- Automated RSS feed monitoring from 100+ global sources
- Real-time threat level assessment and categorization
- Advanced filtering by country, language, and threat level
- Auto-refresh every 30 seconds for live monitoring
π Interactive Continent Map
- Box-based layout similar to Finviz for optimal data visualization
- Color-coded threat levels (Low/Medium/High/Critical)
- Expandable continent sections with detailed country analytics
- Click-to-explore functionality for deep country analysis
π Comprehensive Country Analytics
- Political stability indices and government assessments
- Economic freedom metrics and market indicators
- Security index calculations and corruption levels
- Social unrest, terrorism risk, and cyber threat assessments
- Geopolitical tension analysis and regional dynamics
π Advanced Data Visualization
- Real-time activity logging without browser popups
- Professional PDF report generation with executive summaries
- Interactive threat level indicators and trend analysis
- Comprehensive metrics dashboard with visual indicators
- β‘ Next.js 15 - React framework with App Router
- π TypeScript 5 - Type-safe development
- π¨ Tailwind CSS 4 - Utility-first styling
- π§© shadcn/ui - Modern component library
- ποΈ Prisma ORM - Type-safe database operations
- πΎ SQLite - Lightweight database solution
- π Real-time Updates - WebSocket integration
- π‘ RSS Processing - Automated intelligence collection
- π Glassmorphism Design - Modern aesthetic with backdrop blur
- π± Responsive Layout - Mobile-first design
- π Dark Mode - Built-in theme switching
- β‘ Smooth Animations - Framer Motion transitions
# Clone the repository
git clone https://github.com/GakunGak/intelligence-dashboard
cd intelligence-dashboard
# Install dependencies
npm install
# Set up the database
npm run db:push
# (Optional) Seed sample intelligence reports for testing
npx tsx src/scripts/seed-reports.ts
# Start development server
npm run devOpen http://localhost:3000 to view the dashboard.
After starting the server, you can verify all functionality is working:
# Run comprehensive tests (requires server to be running)
bash test-fixes.sh
# Or test manually:
# 1. Search for "Ukraine" - should return multiple reports
# 2. Click any country on the threat map - opens detailed country view
# 3. Check "Intelligence Reports" tab in country views - shows relevant reports
# 4. Try different search terms and filtersThe dashboard automatically collects intelligence from:
- 100+ RSS feeds covering global news sources
- Regional coverage: North America, Europe, Asia, Middle East, Africa, South America, Oceania
- Language filtering with 200+ supported languages
- Real-time processing with automatic threat assessment
- Europe: Germany, France, UK, Ukraine, Montenegro, Serbia, Italy, Spain, Netherlands, Belgium, Austria, Switzerland, Sweden, Norway, Finland, Denmark, Poland, Czech Republic, Hungary, Greece, Portugal
- Asia: China, Japan, South Korea, North Korea, India, Pakistan, Russia, Afghanistan, Thailand, Vietnam, Philippines, Indonesia, Malaysia, Singapore, Bangladesh, Sri Lanka, Myanmar, Nepal, Kazakhstan, Uzbekistan, Mongolia
- Middle East: Israel, Iran, Iraq, Saudi Arabia, Turkey, Syria, Lebanon, Jordan, Yemen, UAE
- Africa: South Africa, Egypt, Nigeria, Kenya, Morocco, Tanzania, Ghana, Algeria, Libya, Ethiopia
- Americas: United States, Canada, Mexico, Brazil, Argentina, Colombia, Venezuela, Chile, Peru
- Oceania: Australia, New Zealand, Papua New Guinea, Fiji
Each country includes comprehensive metrics:
| Metric | Description | Range |
|---|---|---|
| ποΈ Political Stability | Government coherence and democratic health | 0-100% |
| π° Economic Freedom | Market openness and trade freedom | 0-100% |
| π‘οΈ Security Index | Overall security capability | 0-100% |
| π« Corruption Level | Government transparency and corruption | 0-100% |
| π€ Social Unrest | Civil stability and protest risk | 0-100% |
| π£ Terrorism Risk | Terror threat assessment | 0-100% |
| π» Cyber Threat | Digital security risks | 0-100% |
| π Geopolitical Tension | International relations stress | 0-100% |
- Non-blocking notifications - No browser alerts that interrupt workflow
- Color-coded log levels - Info (blue), Success (green), Warning (yellow), Error (red)
- Detailed information - Expandable entries with context and metadata
- Auto-expansion - Activity log expands when new events occur
- Persistent history - Maintains log of last 100 activities
- π Search Functionality: Fixed SQLite compatibility issues with case-insensitive search
- π Country Integration: Intelligence reports now properly linked to country overview pages
- π Data Consistency: All countries with available data show relevant intelligence reports
- π― User Experience: Removed all disruptive browser popups and alerts
- π§ͺ Comprehensive Testing: Added automated test suite for all major functionality
- π± Search Performance: Optimized search to handle large datasets efficiently
- ποΈ Country Analytics: Detailed country pages with metrics, reports, and analysis
- π Real-time Updates: Improved data collection and display synchronization
- β Search: Fully functional for all countries and threat types
- β Country Pages: All 11 supported countries with working intelligence reports
- β Threat Map: Interactive continent-based navigation with country details
- β Analytics: Real-time metrics and threat level assessments
- β Data Export: PDF reports and data export functionality operational
- Primary: Blue gradient backgrounds
- Threat Levels: Green (Low) β Yellow (Medium) β Orange (High) β Red (Critical)
- Glassmorphism: Backdrop blur effects with semi-transparent layers
- Dark Theme: Optimized for low-light environments
- Mobile-first responsive design
- Card-based information architecture
- Consistent spacing with 4px grid system
- Smooth transitions and micro-interactions
# Database
DATABASE_URL="file:./dev.db"
# Next.js
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"
# RSS Feeds (optional)
RSS_FEED_TIMEOUT=30000
INTELLIGENCE_COLLECTION_INTERVAL=30000The application uses Prisma with the following main models:
IntelligenceReport- Collected intelligence dataDataSource- RSS feed configurationsThreatTag- Categorization systemCountryMetrics- Country-specific analytics
GET /api/intelligence/reports- Fetch collected reportsPOST /api/intelligence/collect- Trigger intelligence collectionGET /api/intelligence/analytics- Get analytics dataGET /api/intelligence/export- Export data (JSON/CSV/XML)
GET /api/countries- Get all countries with metricsGET /api/country/[id]- Get specific country details
POST /api/intelligence/seed-sources- Configure RSS feedsGET /api/intelligence/sources- List configured sources
// Collect intelligence from all configured sources
const response = await fetch('/api/intelligence/collect', {
method: 'POST'
});
const data = await response.json();
console.log(`Collected ${data.reports.length} reports`);// Get detailed country analysis
const countryData = await fetch('/api/country/ua');
const { country, metrics, reports } = await countryData.json();
console.log(`Ukraine Threat Level: ${country.threatLevel}`);
console.log(`Political Stability: ${metrics.politicalStability}%`);// Get reports with filters
const params = new URLSearchParams({
country: 'Ukraine',
threatLevel: 'CRITICAL',
limit: '50'
});
const reports = await fetch(`/api/intelligence/reports?${params}`);# Build for production
npm run build
# Start production server
npm start- Database: Configure PostgreSQL or MySQL for production
- RSS Feeds: Set up reliable RSS feed sources
- Authentication: Configure NextAuth.js providers
- Monitoring: Set up error tracking and analytics
Contributions are welcome! Please feel free to submit a Pull Request.
- Follow TypeScript best practices
- Use Tailwind CSS for styling
- Write comprehensive tests
- Update documentation for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Data Sources: WorldData.info for comprehensive country statistics
- Design Inspiration: Finviz for financial data visualization concepts
- Icons: Lucide React for beautiful, consistent iconography
- Components: shadcn/ui for accessible, modern UI components
