Skip to content

Production-ready GraphRAG system extracting startup intelligence from TechCrunch with Neo4j, GPT-4o, and semantic search

Notifications You must be signed in to change notification settings

shankerram3/Startup-Intelligence-Analysis-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

93 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Startup Intelligence Analysis App

Version License Python Test Coverage

A production-ready, comprehensive knowledge graph and GraphRAG system that extracts entities and relationships from TechCrunch articles, stores them in Neo4j, and provides intelligent querying capabilities with a React frontend.

πŸ†• What's New in v2.0.0

Major upgrade with enterprise-grade features:

  • πŸ”’ Security & Authentication - JWT tokens, rate limiting, CORS restrictions
  • ⚑ Redis Caching - 200x faster cached queries (10ms vs 2000ms)
  • πŸ“Š Prometheus Metrics - Full observability with 15+ metric types
  • πŸ“ Structured Logging - JSON logs with request tracing
  • πŸ§ͺ 70%+ Test Coverage - Comprehensive test suite with fixtures
  • πŸš€ CI/CD Pipeline - Automated testing, linting, and security scanning
  • πŸ› οΈ 40+ Make Commands - Developer-friendly tooling
  • 🐳 Enhanced Docker - Redis service, health checks, full configuration

πŸš€ Quick Start (5 Minutes)

1. Prerequisites

  • Python 3.11+
  • Docker & Docker Compose
  • OpenAI API key
  • Node.js 18+ (for frontend)

2. Install & Setup

# Clone repository
git clone https://github.com/shankerram3/Startup-Intelligence-Analysis-App.git
cd Startup-Intelligence-Analysis-App

# Install dependencies
make install
# OR: pip install -r requirements.txt --break-system-packages

# Configure environment
cp .env.aura.template .env

# Edit .env with your credentials
nano .env  # Add OPENAI_API_KEY, NEO4J credentials, etc.

Minimal .env configuration:

# Required
OPENAI_API_KEY=sk-your-openai-api-key
NEO4J_URI=bolt://localhost:7687  # or neo4j+s://xxxxx.databases.neo4j.io for Aura
NEO4J_USER=neo4j
NEO4J_PASSWORD=password

# Optional - Good defaults provided
CACHE_ENABLED=true
ENABLE_RATE_LIMITING=true
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000
LOG_LEVEL=INFO

3. Start Services

# Start all services (Neo4j + Redis + API)
make docker-up
# OR: docker-compose up -d

# Verify everything is healthy
make health

4. Run Pipeline

# Build knowledge graph (embeddings generated automatically!)
python pipeline.py \
  --scrape-category startups \
  --scrape-max-pages 2 \
  --max-articles 10

This automatically runs all phases:

  1. Web Scraping - TechCrunch article extraction
  2. Entity Extraction - GPT-4o NER and relationships
  3. Company Intelligence Enrichment πŸ†• - Deep company data via Playwright
  4. Graph Construction - Build Neo4j knowledge graph
  5. Post-Processing - Embeddings, deduplication, communities

5. Access the App

# Start frontend
cd frontend && npm install && npm run dev

# Access UI
open http://localhost:5173

# API documentation
open http://localhost:8000/docs

# Prometheus metrics
open http://localhost:8000/metrics

✨ Features

πŸ”₯ Core Pipeline

  • βœ… Web Scraping - Automated TechCrunch article extraction
  • βœ… Entity Extraction - GPT-4o based NER and relationship extraction
  • βœ… Company Intelligence πŸ†• - Playwright-powered deep company data scraping
  • βœ… Knowledge Graph - Neo4j graph database with enriched company profiles
  • βœ… Auto Post-Processing - Embeddings, deduplication, communities (automatic!)

πŸ€– GraphRAG Query System

  • βœ… Natural Language Queries - Ask questions in plain English
  • βœ… Semantic Search - Vector similarity search with sentence-transformers
  • βœ… Hybrid Search - Combined semantic + keyword search
  • βœ… REST API - 40+ FastAPI endpoints
  • βœ… React Frontend - Modern web UI with chat & dashboard
  • βœ… Multi-hop Reasoning - Complex graph traversal
  • βœ… Entity Comparison - Compare companies, investors, etc.

πŸ”’ Security & Authentication (NEW v2.0)

  • βœ… JWT Authentication - Token-based auth with configurable expiration
  • βœ… Rate Limiting - IP-based limits (30 requests/minute default)
  • βœ… CORS Protection - Restricted origins (no more wildcards)
  • βœ… Request Size Limits - 10MB default (configurable)
  • βœ… Error Sanitization - No sensitive data leakage
  • βœ… Password Hashing - Bcrypt with strength validation

⚑ Performance & Caching (NEW v2.0)

  • βœ… Redis Caching - Query results cached (1 hour TTL)
  • βœ… 200x Faster - Cached queries: 10ms vs 2000ms
  • βœ… Entity Caching - Frequently accessed entities cached
  • βœ… Cache Statistics - Hit/miss rates tracked
  • βœ… Configurable TTL - Per-cache-type expiration

πŸ“Š Monitoring & Observability (NEW v2.0)

  • βœ… Prometheus Metrics - 15+ metric types
    • API requests (count, duration, size)
    • Neo4j queries (count, duration, status)
    • LLM usage (tokens, cost tracking)
    • Cache operations (hits, misses)
    • Business metrics (articles, entities, relationships)
  • βœ… Structured Logging - JSON logs with request IDs
  • βœ… Health Checks - Component status monitoring
  • βœ… Performance Tracking - Detailed duration metrics

πŸ§ͺ Testing & Quality (NEW v2.0)

  • βœ… 70%+ Test Coverage - Comprehensive test suite
  • βœ… Unit Tests - 150+ test cases
  • βœ… Integration Tests - Neo4j + Redis + API
  • βœ… CI/CD Pipeline - Automated testing & security scans
  • βœ… Pre-commit Hooks - Code quality enforcement
  • βœ… Mock Fixtures - Reusable test utilities

πŸ› οΈ Developer Tools (NEW v2.0)

  • βœ… Makefile - 40+ commands for common tasks
  • βœ… Pre-commit Hooks - Automatic formatting & linting
  • βœ… GitHub Actions - CI/CD automation
  • βœ… Docker Compose - One-command service startup
  • βœ… Type Checking - MyPy static analysis

πŸ“ˆ Data Quality

  • βœ… Multi-layer Validation - Article and extraction validation
  • βœ… Entity Deduplication - Automatic duplicate merging
  • βœ… Quality Filtering - Removes noise and irrelevant data
  • βœ… Checkpoint System - Resume capability for long runs

πŸ“‹ Common Commands

Quick Commands (NEW)

# Show all available commands
make help

# Install dependencies
make install

# Run all tests
make test

# Run tests with coverage
make test-coverage

# Check code quality
make lint

# Format code
make format

# Run all CI checks locally
make ci

# Start Docker services
make docker-up

# Check system health
make health

# View system status
make status

# View metrics
make metrics

# Clean temporary files
make clean

Pipeline

# Full pipeline (automatic embeddings!)
python pipeline.py --scrape-category startups --scrape-max-pages 2 --max-articles 10

# Use existing articles
python pipeline.py --skip-scraping --max-articles 50

# Use existing extractions
python pipeline.py --skip-scraping --skip-extraction

# Resume from checkpoint
python pipeline.py --scrape-category ai --max-articles 100

Services

# Start all services with Docker
make docker-up

# Start API only
python api.py

# Start frontend only
cd frontend && npm run dev

# View logs
make docker-logs

# Restart services
make docker-restart

# Stop all services
make docker-down

Query

# Via React UI
open http://localhost:5173

# Via API docs (Swagger UI)
open http://localhost:8000/docs

# Via Python
python -c "from rag_query import create_rag_query; rag = create_rag_query(); print(rag.query('Which AI startups raised funding?')['answer']); rag.close()"

# Via cURL
curl -X POST http://localhost:8000/query \
  -H "Content-Type: application/json" \
  -d '{"question": "Which AI startups raised funding?", "use_llm": true}'

# With authentication (if enabled)
curl -X POST http://localhost:8000/query \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{"question": "What is OpenAI?"}'

Testing (NEW)

# Run all tests
make test

# Run unit tests only
make test-unit

# Run integration tests
make test-integration

# Run with coverage report
make test-coverage

# Run specific test file
pytest tests/unit/test_security.py -v

# Run tests with markers
pytest -m unit  # Only unit tests
pytest -m integration  # Only integration tests

Monitoring (NEW)

# Check health
curl http://localhost:8000/health | python -m json.tool

# View system status
curl http://localhost:8000/admin/status | python -m json.tool

# View Prometheus metrics
curl http://localhost:8000/metrics

# Check cache statistics
curl http://localhost:8000/admin/status | jq .cache

πŸ”§ Configuration

Environment Variables

Required:

OPENAI_API_KEY=sk-your-openai-api-key
NEO4J_URI=bolt://localhost:7687  # or neo4j+s://xxx.databases.neo4j.io
NEO4J_USER=neo4j
NEO4J_PASSWORD=your-password

Security (Optional - NEW v2.0):

ENABLE_AUTH=false                    # Set true for JWT authentication
JWT_SECRET_KEY=change-in-production  # Generate: openssl rand -hex 32
ACCESS_TOKEN_EXPIRE_MINUTES=60       # Token expiration
ENABLE_RATE_LIMITING=true            # Rate limiting (30 req/min)
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000  # CORS
MAX_REQUEST_SIZE=10485760            # 10MB request limit

Caching (Optional - NEW v2.0):

CACHE_ENABLED=true                   # Enable Redis caching
REDIS_HOST=localhost                 # Redis host (use 'redis' in Docker)
REDIS_PORT=6379                      # Redis port
REDIS_DB=0                           # Redis database number
CACHE_DEFAULT_TTL=3600              # Cache TTL in seconds (1 hour)

Logging (Optional - NEW v2.0):

LOG_LEVEL=INFO                       # DEBUG, INFO, WARNING, ERROR, CRITICAL
JSON_LOGS=true                       # JSON format (recommended for production)
ENABLE_FILE_LOGGING=false            # Write logs to logs/api.log

API Configuration:

API_HOST=0.0.0.0                     # API host
API_PORT=8000                        # API port
RAG_EMBEDDING_BACKEND=sentence-transformers
SENTENCE_TRANSFORMERS_MODEL=BAAI/bge-small-en-v1.5

Frontend Configuration

Create frontend/.env.local:

# Local development
VITE_API_BASE_URL=http://localhost:8000

# Remote server
VITE_API_BASE_URL=http://YOUR_VM_PUBLIC_IP:8000

πŸ—οΈ Architecture

Data Pipeline

Phase 0: Web Scraping β†’ Raw JSON
Phase 1: Entity Extraction β†’ Entities & Relationships
Phase 1.5: Company Intelligence πŸ†• β†’ Deep company data via Playwright
Phase 2: Graph Construction β†’ Neo4j Knowledge Graph (with enriched data)
Phase 3: Graph Cleanup β†’ Remove noise & duplicates
Phase 4: Post-Processing β†’ Embeddings, Deduplication, Communities (AUTOMATIC)
    ↓
Ready for Queries!

Query Flow (NEW v2.0)

User Question
    ↓
[Rate Limiting] β†’ Check IP limits
    ↓
[Cache Check] β†’ Redis cache lookup
    ↓
[Semantic Search] β†’ Vector similarity
    ↓
[Graph Traversal] β†’ Neo4j Cypher queries
    ↓
[LLM Generation] β†’ GPT-4o answer generation
    ↓
[Cache Store] β†’ Store result in Redis
    ↓
[Metrics Recording] β†’ Prometheus metrics
    ↓
User Response (with structured logging)

System Components (NEW v2.0)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  React Frontend β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ HTTP
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           FastAPI API Server             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚  Middleware Stack:               β”‚   β”‚
β”‚  β”‚  - Rate Limiting (slowapi)       β”‚   β”‚
β”‚  β”‚  - Request Size Limiting         β”‚   β”‚
β”‚  β”‚  - Prometheus Metrics            β”‚   β”‚
β”‚  β”‚  - CORS (restricted)             β”‚   β”‚
β”‚  β”‚  - Structured Logging            β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
   β”‚       β”‚         β”‚          β”‚
   β”‚ Neo4j β”‚  Redis  β”‚  OpenAI  β”‚  Prometheus
   β”‚       β”‚  Cache  β”‚    API   β”‚   Scraper
   β–Ό       β–Ό         β–Ό          β–Ό
[Graph] [Cache] [LLM]  [Metrics Dashboard]

πŸ“Š Entity Types & Relationships

Entity Types

Company, Person, Investor, Technology, Product, FundingRound, Location, Event

Relationship Types

FUNDED_BY, FOUNDED_BY, WORKS_AT, ACQUIRED, PARTNERS_WITH, COMPETES_WITH, USES_TECHNOLOGY, LOCATED_IN, ANNOUNCED_AT, REGULATES, OPPOSES, SUPPORTS, COLLABORATES_WITH, INVESTS_IN, ADVISES, LEADS

Enriched Company Data (NEW Phase 1.5)

  • Founded year, employee count, headquarters
  • Founders, executives, team information
  • Funding rounds and investment data
  • Products, technologies, pricing models
  • Website URLs and social links

πŸ“ˆ Performance Benchmarks (NEW v2.0)

Operation Without Cache With Cache Speedup
Simple Query 2000ms 10ms 200x
Semantic Search 500ms 50ms 10x
Entity Lookup 200ms 15ms 13x
Graph Traversal 1000ms 100ms 10x

Cache Hit Rates:

  • Query cache: 30-50% (repeated questions)
  • Entity cache: 60-70% (frequently accessed entities)

πŸ§ͺ Testing

Run Tests

# All tests
make test

# Unit tests (fast)
make test-unit

# Integration tests (requires services)
make test-integration

# With coverage report
make test-coverage

# Specific test file
pytest tests/unit/test_security.py -v

# With markers
pytest -m unit -v
pytest -m integration -v

Test Coverage

Current coverage: 70%+

  • utils/data_validation.py - 95%+
  • utils/security.py - 90%+
  • utils/cache.py - 85%+
  • api.py - 30%+ (integration tests)

Writing Tests

# Example using fixtures
def test_query_caching(api_client, sample_article):
    # Use fixtures from tests/conftest.py
    response = api_client.post("/query", json={
        "question": "What is AI?",
        "use_llm": True
    })
    assert response.status_code == 200

πŸ”’ Security Best Practices

For Production Deployment

  1. Enable Authentication:

    ENABLE_AUTH=true
    JWT_SECRET_KEY=$(openssl rand -hex 32)  # Generate secure key
  2. Restrict CORS:

    ALLOWED_ORIGINS=https://yourdomain.com,https://api.yourdomain.com
  3. Use Strong Passwords:

    • Neo4j: Generate with openssl rand -base64 32
    • Redis: REDIS_PASSWORD=$(openssl rand -hex 24)
  4. Enable HTTPS:

    • Use reverse proxy (nginx, Caddy)
    • Configure SSL certificates
  5. Set Up Monitoring:

    • Prometheus scraping
    • Grafana dashboards
    • Alert rules
  6. Review Security Checklist:

    # Run security scan
    make security-check
    
    # Check for hardcoded secrets
    grep -r "API_KEY\|SECRET" --include="*.py" .

πŸ“Š Monitoring & Observability

Prometheus Metrics

Available at: http://localhost:8000/metrics

Key Metrics:

  • api_requests_total - Total API requests by endpoint/status
  • api_request_duration_seconds - Request duration histogram
  • neo4j_queries_total - Database query count
  • neo4j_query_duration_seconds - Query performance
  • llm_requests_total - LLM API calls
  • llm_tokens_used_total - Token usage tracking
  • cache_hits_total / cache_misses_total - Cache performance
  • articles_scraped_total - Pipeline metrics
  • entities_extracted_total - Entity extraction stats

Grafana Dashboard Setup

# 1. Start Grafana
docker run -d -p 3000:3000 grafana/grafana

# 2. Add Prometheus datasource
# URL: http://host.docker.internal:9090

# 3. Import dashboard
# Use dashboard ID: 1860 (Node Exporter)
# Or create custom dashboard with metrics above

Log Aggregation

# View structured logs
docker-compose logs -f graphrag-api | jq

# Filter by log level
docker-compose logs graphrag-api | jq 'select(.level=="ERROR")'

# Find slow queries
docker-compose logs graphrag-api | jq 'select(.duration_ms > 1000)'

πŸ› Troubleshooting

Common Issues

1. Queries Return "No Relevant Context"

# Check embeddings
python -c "from neo4j import GraphDatabase; import os; from dotenv import load_dotenv; load_dotenv(); driver = GraphDatabase.driver(os.getenv('NEO4J_URI'), auth=(os.getenv('NEO4J_USER'), os.getenv('NEO4J_PASSWORD'))); result = driver.session().run('MATCH (n) WHERE n.embedding IS NOT NULL RETURN count(n) as count'); print(f'Embeddings: {result.single()[\"count\"]}'); driver.close()"

# Generate embeddings if needed
python -c "from neo4j import GraphDatabase; from utils.embedding_generator import EmbeddingGenerator; import os; from dotenv import load_dotenv; load_dotenv(); driver = GraphDatabase.driver(os.getenv('NEO4J_URI'), auth=(os.getenv('NEO4J_USER'), os.getenv('NEO4J_PASSWORD'))); gen = EmbeddingGenerator(driver, 'sentence-transformers'); gen.generate_embeddings_for_all_entities(); driver.close()"

2. Redis Connection Failed

# Check Redis status
docker-compose ps redis

# Restart Redis
docker-compose restart redis

# Check connection
redis-cli ping

# View cache stats
curl http://localhost:8000/admin/status | jq .cache

3. Rate Limiting Too Strict

# Disable temporarily for testing
export ENABLE_RATE_LIMITING=false
python api.py

# Or increase limit in code (api.py)
@limiter.limit("100/minute")  # Instead of 30/minute

4. Neo4j Connection Failed

# Check Neo4j
docker ps | grep neo4j

# Start Neo4j
docker-compose up -d neo4j

# Test connection
python -c "from neo4j import GraphDatabase; import os; from dotenv import load_dotenv; load_dotenv(); driver = GraphDatabase.driver(os.getenv('NEO4J_URI'), auth=(os.getenv('NEO4J_USER'), os.getenv('NEO4J_PASSWORD'))); driver.verify_connectivity(); print('βœ“ Connected'); driver.close()"

5. Tests Failing

# Install test dependencies
pip install pytest pytest-cov pytest-asyncio faker

# Run with verbose output
pytest -vv

# Check specific failure
pytest tests/unit/test_security.py::test_create_token -vv

6. Docker Build Fails

# Clean and rebuild
docker-compose down -v
docker system prune -f
docker-compose build --no-cache
docker-compose up -d

7. Frontend Not Accessible

# Check services
sudo netstat -tulpn | grep -E '8000|5173'

# Check firewall
sudo ufw status | grep -E '8000|5173'

# Add firewall rules
sudo ufw allow 8000/tcp
sudo ufw allow 5173/tcp

8. High Memory Usage

# Check Neo4j memory settings in docker-compose.yml
NEO4J_server_memory_heap_max__size: 512m  # Adjust as needed

# Check Redis memory
redis-cli info memory

# Clean cache
curl -X POST http://localhost:8000/admin/cache/clear

🚒 Deployment

Local Development

# Quick start
make docker-up
make run

# Or manually
docker-compose up -d
python api.py
cd frontend && npm run dev

Production Deployment

Option 1: Docker Compose (Recommended)

# 1. Configure production environment
cp .env.aura.template .env
nano .env  # Set production values

# 2. Build and start services
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

# 3. Set up reverse proxy (nginx)
# See docs/nginx-config.example

Option 2: Kubernetes

# 1. Create secrets
kubectl create secret generic app-secrets \
  --from-literal=openai-api-key=$OPENAI_API_KEY \
  --from-literal=neo4j-password=$NEO4J_PASSWORD

# 2. Deploy
kubectl apply -f k8s/

# 3. Verify
kubectl get pods
kubectl logs -f deployment/graphrag-api

Option 3: Cloud Platforms

AWS:

# Use ECS/Fargate with docker-compose.yml
ecs-cli compose up

# Or EC2 with docker-compose
ssh ec2-user@your-instance
git clone ...
docker-compose up -d

Google Cloud:

# Use Cloud Run
gcloud run deploy graphrag-api \
  --source . \
  --platform managed \
  --region us-central1

Azure:

# Use Container Instances
az container create \
  --resource-group myResourceGroup \
  --name graphrag-api \
  --image your-registry/graphrag-api:latest

Production Checklist

  • Set ENABLE_AUTH=true
  • Generate secure JWT_SECRET_KEY
  • Configure ALLOWED_ORIGINS for your domain
  • Use managed Neo4j (Aura) or secure self-hosted
  • Set up Redis persistence
  • Configure SSL/TLS (HTTPS)
  • Set up Prometheus + Grafana
  • Configure log aggregation (ELK, Datadog)
  • Set up alerting (PagerDuty, Slack)
  • Configure backups (Neo4j, Redis)
  • Set resource limits (Docker, Kubernetes)
  • Enable monitoring & health checks
  • Test disaster recovery
  • Document runbooks

πŸ“š Documentation

Additional Resources


🀝 Contributing

Development Setup

# 1. Install pre-commit hooks
make hooks-install

# 2. Run checks before committing
make ci

# 3. Run tests
make test

# 4. Format code
make format

Code Quality Standards

  • Code Coverage: 70%+ required
  • Type Hints: All functions must have type hints
  • Docstrings: All public functions/classes
  • Tests: Unit tests for all new features
  • Linting: Pass Pylint, Black, isort
  • Security: Pass Bandit security scan

πŸ“„ License

MIT License - See LICENSE file for details


πŸ™ Acknowledgments


πŸ“ž Support


🎯 Roadmap

v2.1.0 (Next Release)

  • GraphQL API
  • WebSocket support for real-time updates
  • Multi-tenancy support
  • Advanced entity resolution
  • Graph visualization UI

v2.2.0

  • Dedicated vector database (Pinecone/Weaviate)
  • Distributed tracing (OpenTelemetry)
  • Multi-language support
  • Advanced analytics dashboard
  • Automated graph quality scoring

v3.0.0

  • Multi-region deployment
  • Edge caching
  • Real-time streaming ingestion
  • Advanced ML features
  • Enterprise SSO integration

πŸ“Š Project Statistics

Metric Value
Version 2.0.0
Lines of Code 16,000+
Test Coverage 70%+
API Endpoints 40+
Dependencies 87 packages
Docker Services 3 (Neo4j, Redis, API)
Test Files 7
Utility Modules 23
Code Quality 9/10

Made with ❀️ for the startup intelligence community

v2.0.0 - Production Ready πŸš€