Skip to content

ashioyajotham/data_centers_are_eating_the_world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Data Centers Are Eating The World 🌍

An open-source, automated mapping project that makes the invisible infrastructure powering our digital lives visibleβ€”starting with Kenya, expanding globally.

Project Status License Data License

🎯 What is This?

An interactive, real-time mapping platform that:

  • Makes Infrastructure Visible - Interactive maps showing every data center
  • Tracks Growth Over Time - Timeline showing infrastructure expansion
  • Reveals Impact - Visualize power consumption and economic investment
  • Stays Current - Automated scrapers pull data from multiple sources

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Python 3.9+
  • PostgreSQL 14+ with PostGIS extension

Installation

# Clone the repository
git clone [your-repo-url]
cd data_centers_mapping

# Install all dependencies
npm run install:all

# Install Python dependencies
cd scraper && pip install -r requirements.txt

Setup Database

# Create PostgreSQL database with PostGIS
createdb datacenter_map
psql datacenter_map -c "CREATE EXTENSION postgis;"

# Run migrations
npm run db:setup
npm run db:migrate

Configuration

Create .env files in both backend/ and frontend/:

backend/.env

DATABASE_URL=postgresql://localhost:5432/datacenter_map
PORT=3001
NODE_ENV=development

frontend/.env

VITE_API_URL=http://localhost:3001
VITE_MAPBOX_TOKEN=your_mapbox_token_here

Run the Application

# Start both frontend and backend
npm run dev

# Or start separately:
npm run dev:frontend  # Frontend at http://localhost:5173
npm run dev:backend   # Backend at http://localhost:3001

Run Data Scrapers

npm run scrape

News Monitor (New! πŸŽ‰)

Automatically monitors news sources for data center announcements and flags them for manual review:

cd scraper
python news_monitor.py

Or integrate into main scraper:

python main.py --include-news  # Run news monitor + normal scraping
python main.py --news-only      # Only check news (no DB updates)

How it works:

  1. Scans RSS feeds from Citizen Digital, TechCrunch, Business Daily Kenya
  2. Finds articles mentioning data centers, AI infrastructure, etc.
  3. Generates a review report with article links
  4. You manually review and add new data centers to scraper/scrapers/manual_data_scraper.py

See NEWS_MONITOR_GUIDE.md for details.

πŸ—οΈ Project Structure

data_centers_mapping/
β”œβ”€β”€ frontend/          # React + TypeScript UI
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/   # UI components
β”‚   β”‚   β”œβ”€β”€ pages/        # Page components
β”‚   β”‚   β”œβ”€β”€ hooks/        # Custom hooks
β”‚   β”‚   β”œβ”€β”€ services/     # API services
β”‚   β”‚   └── types/        # TypeScript types
β”‚   └── public/
β”œβ”€β”€ backend/           # Node.js/Express API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ routes/       # API routes
β”‚   β”‚   β”œβ”€β”€ controllers/  # Request handlers
β”‚   β”‚   β”œβ”€β”€ models/       # Database models
β”‚   β”‚   β”œβ”€β”€ middleware/   # Express middleware
β”‚   β”‚   └── utils/        # Utilities
β”‚   └── db/
β”‚       └── migrations/   # Database migrations
β”œβ”€β”€ scraper/           # Python web scrapers
β”‚   β”œβ”€β”€ scrapers/         # Individual scrapers
β”‚   β”œβ”€β”€ processors/       # Data processing
β”‚   └── data/             # Scraped data output
└── docs/              # Documentation

πŸ› οΈ Tech Stack

Frontend

  • React 18 + TypeScript
  • Vite - Fast build tool
  • Mapbox GL JS - Interactive maps
  • D3.js - Data visualizations
  • Tailwind CSS - Styling
  • React Query - Data fetching

Backend

  • Node.js + Express
  • PostgreSQL + PostGIS - Geospatial database
  • Prisma - Database ORM
  • Node-cron - Scheduled tasks

Data Pipeline

  • Python 3.9+
  • BeautifulSoup4 - HTML parsing
  • Selenium - Dynamic scraping
  • FuzzyWuzzy - Deduplication
  • Geopy - Geocoding

πŸ“Š Features

MVP (Kenya Launch)

  • βœ… Interactive map with data center locations
  • βœ… Filter by status, capacity, ownership type
  • βœ… Detail panel for each facility
  • βœ… Basic statistics dashboard
  • βœ… Mobile-responsive design
  • βœ… Export data (JSON, CSV, GeoJSON)

Planned Features

  • Timeline slider (2010-2025)
  • Layer system (power grid, fiber, cables)
  • Impact calculator
  • Community submissions
  • Public API
  • Alert system

🀝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Ways to Contribute

  • Submit data center information
  • Improve scrapers
  • Enhance visualizations
  • Write documentation
  • Report bugs

πŸ“„ License

  • Code: MIT License
  • Data: CC BY 4.0 (attribution required)

πŸ‘¨β€πŸ’» Author & Attribution

Created by: Victor Jotham Ashioya

How to Attribute This Project

If you use this project or its data, please provide attribution:

For Code (MIT License):

Data Centers Mapping Platform by Victor Jotham Ashioya
https://github.com/ashioyajotham/data_centers_mapping

For Data (CC BY 4.0):

Data sourced from "Data Centers Are Eating The World" by Victor Jotham Ashioya
Licensed under CC BY 4.0
https://github.com/ashioyajotham/data_centers_mapping

In Academic Papers:

Ashioya, V. J. (2025). Data Centers Are Eating The World: 
An Open-Source Mapping Platform for Global Data Center Infrastructure. 
GitHub. https://github.com/ashioyajotham/data_centers_mapping

πŸ™ Acknowledgments

Inspired by:

About

This idea is mostly how supercomputers (AI data centers) are coming up fast so it is an attempt to map them like Semi-Analysis does

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors