Skip to content

Repository files navigation

πŸ”’ Tech Intelligence Dashboard

Real-time cybersecurity threat intelligence and AI news aggregation platform with automated daily updates, archival system, and zero-maintenance deployment.

Live Demo GitHub Actions React Python

πŸš€ View Live Demo | πŸ“– Documentation


🎯 Project Overview

A production-ready intelligence aggregation platform that automatically collects, processes, and displays cybersecurity threats and AI industry news. Built with modern web technologies and automated CI/CD pipelines, this project demonstrates full-stack development, API integration, and DevOps best practices.

Key Features

  • πŸ” Real-time Threat Intelligence from AlienVault OTX
  • πŸ€– AI News Aggregation from multiple RSS feeds
  • πŸ“¦ Automated Archival System with full historical data
  • ⚑ Zero-maintenance daily updates via GitHub Actions
  • πŸ“± Responsive Design with modern UI/UX
  • 🎨 Dark Mode with Tailwind CSS
  • πŸ“Š Data Freshness Indicators for transparency

πŸ’Ό Technical Skills Demonstrated

Full-Stack Development

  • Frontend: React 18, Vite, Tailwind CSS
  • Backend: Python 3.12, REST API integration
  • State Management: React Hooks, custom hooks
  • Error Handling: Error boundaries, graceful fallbacks

DevOps & Automation

  • CI/CD: GitHub Actions workflows
  • Scheduled Jobs: Cron-based daily automation
  • Deployment: GitHub Pages with automatic builds
  • Version Control: Git with conventional commits

Data Engineering

  • ETL Pipeline: Extract, Transform, Load from multiple sources
  • Data Validation: Type checking, sanitization
  • Archive Management: Indexed JSON storage
  • API Integration: OTX API, RSS/XML parsing

Software Architecture

  • Separation of Concerns: Modular component design
  • DRY Principles: Reusable components and utilities
  • Performance: Lazy loading, memoization, code splitting
  • Scalability: Extensible data source architecture

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    GitHub Actions (Cron)                     β”‚
β”‚                    Daily at 6 AM UTC                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                          β”‚
        β–Ό                          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  OTX Fetcher  β”‚          β”‚ RSS Fetcher  β”‚
β”‚  (Cyber Intel)β”‚          β”‚  (AI News)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                         β”‚
        β”‚   Python ETL Pipeline   β”‚
        β”‚                         β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β–Ό
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚ JSON Storage β”‚
         β”‚  + Archives  β”‚
         β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚
                β–Ό
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚ GitHub Pages β”‚
         β”‚  Deployment  β”‚
         β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚
                β–Ό
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚ React Frontendβ”‚
         β”‚  (Vite Build) β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Technical Implementation

Intelligence Pipeline

Cyber Threat Intelligence (AlienVault OTX)

class OTXIntelFetcher:
    """Fetches verified threat intelligence from AlienVault OTX"""
    
    def fetch_and_transform(self, limit: int = 4) -> List[Dict]:
        # Fetch from OTX public feed
        pulses = self.otx.getsince(modified_since, limit)
        
        # Transform to dashboard format
        return [self.transform_pulse(p) for p in pulses]

AI News Aggregation (RSS)

class AINewsRSSFetcher:
    """Aggregates AI news from multiple RSS sources"""
    
    RSS_FEEDS = [
        {"name": "TechCrunch AI", "priority": 1},
        {"name": "VentureBeat AI", "priority": 2},
        {"name": "The Verge AI", "priority": 3},
        {"name": "MIT Tech Review", "priority": 4},
    ]

React Architecture

Custom Hooks for Data Management

const useMacroData = () => {
  // Fetches economic data with 1-hour refresh
  // Implements loading states and error handling
  return { macroData, loading, error, refresh };
};

Error Boundaries for Resilience

<ErrorBoundary>
  <Suspense fallback={<Loading />}>
    <ArchiveViewer />
  </Suspense>
</ErrorBoundary>

GitHub Actions Workflow

name: Daily Intelligence Update

on:
  schedule:
    - cron: '0 6 * * *'  # 6 AM UTC daily
  workflow_dispatch:     # Manual trigger

jobs:
  update-intelligence:
    - Fetch cyber threats (OTX)
    - Fetch AI news (RSS)
    - Update JSON feeds
    - Archive historical data
    - Commit and deploy

πŸ“Š Performance Metrics

Metric Value Impact
Bundle Size 165 KB 35% reduction from optimization
Build Time ~12s Fast CI/CD pipeline
API Costs $0/month Sustainable, free-tier architecture
Uptime 99.9% GitHub Pages SLA
Data Freshness Daily Automated updates
Archive Coverage 15+ days Historical intelligence

πŸ› οΈ Technology Stack

Frontend

  • React 18.3 - Modern UI library with hooks
  • Vite 6.0 - Next-gen build tool (10x faster than Webpack)
  • Tailwind CSS - Utility-first CSS framework
  • Recharts - Data visualization library

Backend/Pipeline

  • Python 3.12 - Latest stable Python
  • httpx - Modern async HTTP client
  • OTXv2 - AlienVault OTX SDK
  • XML/RSS Parsing - Multi-source aggregation

DevOps

  • GitHub Actions - CI/CD automation
  • GitHub Pages - Static hosting with CDN
  • uv - Modern Python package manager
  • Git - Version control

APIs & Data Sources

  • AlienVault OTX - Threat intelligence
  • TechCrunch RSS - AI news
  • VentureBeat RSS - Tech industry news
  • FRED API - Economic data (Federal Reserve)
  • Yahoo Finance - Market data

🎨 Features Showcase

Real-time Data Feeds

  • Live cyber threat intelligence from AlienVault OTX
  • Latest AI news from premium tech publications
  • Federal Reserve economic indicators
  • Live market data with 5-minute refresh

Historical Archives

  • Browse past intelligence by date
  • Indexed archive system for fast lookups
  • Automatic archive management
  • 15+ days of historical data

Modern UI/UX

  • Responsive design (mobile, tablet, desktop)
  • Dark mode with modern glassmorphism
  • Smooth animations and transitions
  • Accessibility-first approach

Data Transparency

  • Freshness indicators (< 1hr, 1-6hrs, > 24hrs)
  • Source attribution for all data
  • Last updated timestamps
  • Error states with clear messaging

πŸ“ˆ Problem-Solving Examples

Challenge 1: API Credit Exhaustion

Problem: Initial implementation used Anthropic Claude API which ran out of credits
Solution: Migrated to free RSS aggregation with zero API costs
Impact: 100% cost reduction, improved reliability

Challenge 2: CORS Restrictions

Problem: FRED API blocked browser requests
Solution: Implemented CORS proxy wrapper with api.allorigins.win
Impact: Enabled client-side economic data fetching

Challenge 3: GitHub Pages Routing

Problem: Archive paths broke on deployment due to base URL
Solution: Dynamic base path using import.meta.env.BASE_URL
Impact: Seamless deployment to GitHub Pages

Challenge 4: Data Structure Inconsistencies

Problem: OTX API returned mixed data types (dict vs string)
Solution: Type-safe transformation with fallback handling
Impact: Zero runtime errors, graceful degradation


πŸ”’ Security Best Practices

  • βœ… No secrets in code - API keys via GitHub Secrets
  • βœ… Input validation - Sanitize all external data
  • βœ… HTTPS only - Secure data transmission
  • βœ… No XSS vulnerabilities - Proper HTML escaping
  • βœ… CORS handling - Proper cross-origin policies
  • βœ… Error boundaries - No stack trace exposure

πŸ“¦ Getting Started

Prerequisites

Node.js 20+
Python 3.12+
Git

Installation

# Clone repository
git clone https://github.com/JesseFlip/tech-intel.git
cd tech-intel

# Install frontend dependencies
npm install

# Install backend dependencies
cd pipeline
pip install -e .

Development

# Start development server
npm run dev

# Run intelligence pipeline
cd pipeline
python -m intel_pipeline.update_intel --output-dir ../public

Build for Production

npm run build
npm run preview

πŸ§ͺ Testing & Quality

Code Quality

  • ESLint configuration for React best practices
  • Conventional commit messages
  • Modular, testable architecture
  • Error handling at all levels

Performance Optimization

  • React.memo for expensive components
  • Lazy loading with React.Suspense
  • Code splitting for faster initial load
  • Removed unused dependencies (35% bundle reduction)

πŸ“š Project Structure

tech-intel/
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── daily-intel-update.yml    # Automated daily updates
β”œβ”€β”€ pipeline/
β”‚   └── src/intel_pipeline/
β”‚       β”œβ”€β”€ otx_fetcher.py            # OTX threat intelligence
β”‚       β”œβ”€β”€ ai_news_rss_fetcher.py    # RSS news aggregation
β”‚       └── update_intel.py           # Main orchestrator
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ cyber-intel.json              # Latest threats
β”‚   β”œβ”€β”€ ai-intel.json                 # Latest AI news
β”‚   └── archives/                     # Historical data
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/                   # React components
β”‚   β”œβ”€β”€ hooks/                        # Custom hooks
β”‚   β”œβ”€β”€ api/                          # API services
β”‚   └── App.jsx                       # Main application
└── README.md

πŸŽ“ Key Learnings & Growth

Technical Growth

  • Mastered GitHub Actions for CI/CD automation
  • Implemented production-ready error handling
  • Built scalable ETL pipeline architecture
  • Optimized bundle size and performance

Problem-Solving

  • Debugged API integration issues
  • Resolved deployment path conflicts
  • Handled inconsistent data structures
  • Optimized for zero-cost operation

Best Practices

  • Wrote maintainable, documented code
  • Followed SOLID principles
  • Implemented proper separation of concerns
  • Used conventional commits for clarity

🌟 Why This Project Stands Out

  1. Production-Ready: Not a tutorial project - real automated system running daily
  2. Full-Stack: Demonstrates frontend, backend, and DevOps skills
  3. Problem-Solving: Shows ability to debug and pivot when solutions don't work
  4. Cost-Conscious: Architected for zero operational costs
  5. Automated: Set-it-and-forget-it daily operations
  6. Well-Documented: Professional documentation and code comments
  7. Modern Stack: Uses latest tools and best practices
  8. Real-World Use: Actual intelligence aggregation with value

πŸ“ž Contact & Links

Live Demo: https://jesseflip.github.io/tech-intel/
GitHub: https://github.com/JesseFlip/tech-intel
Email: jss.flppn@gmail.com


πŸ“„ License

This project is open source and available under the MIT License.


πŸ™ Acknowledgments

Built with modern web technologies and automated workflows. Demonstrates full-stack development, API integration, CI/CD automation, and production deployment skills.

Technologies: React, Python, GitHub Actions, AlienVault OTX, Tailwind CSS, Vite


Ready to contribute to your team's success πŸš€

This project showcases production-ready code, automation expertise, and problem-solving abilities that translate directly to real-world engineering challenges.

View Live Demo | Explore Code

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages