Welcome to the Web Scraper Dashboard

This self-hosted web application automates the collection, processing, and visualization of real-time data. It combines powerful web scraping, API integration, and backend architecture to deliver a reliable and extensible data dashboard — all running on a Raspberry Pi Headless Server.

🛠️ Tech Stack

Component Technology Used
Backend Flask, Python
Web Scraping Playwright, FinnHub, and CoinMarketCap API
Database PostgreSQL (Star schema with normalized views)
API Backend REST API using FastAPI in Python, using key role management
Web Server Nginx + Gunicorn
Frontend HTML, Jinja2, CSS (Dark Mode UI)
Content Management Custom CMS (Database-driven layouts & assets)
Hosting Self Hosted on a Raspberry Pi

🌐 Web Scraping & API Integration

The system retrieves structured data from websites using Playwright-based scrapers, distributed across Raspberry Pi devices. External APIs provide real-time market data (like stocks and crypto), fetched via scheduled jobs to ensure freshness.

🗄️ Database Architecture & API Backend

Data is stored in a PostgreSQL backend using a denormalized star schema for fast analytics, supported by normalized views to keep data structured and reusable across endpoints. The database is exposed via secure API endpoints with role-based access control.

🚀 Hosting & Deployment

The entire stack runs on a Raspberry Pi using PostgreSQL, Flask, Nginx, and Gunicorn for efficient performance and scalability. The setup allows seamless CI/CD-style updates with minimal downtime and hands-free startup.

🧰 CMS & Dashboard Interface

The dashboard interface is built using Flask and Jinja2 templates, with a responsive layout, pagination, and live filters. Now powered by a custom CMS, all content — pages, layouts, assets, and components — are loaded dynamically from the PostgreSQL database.

🛎️ Coming Soon: In-Browser Page Management

Admin tools are under construction to allow content creation and editing directly from the dashboard. The upcoming features include:

  • ✏️ Inline editing of pages and components
  • 🧱 Drag-and-drop page builder (planned)
  • 📝 Markdown and HTML editor support
  • 🔐 Role-based admin controls
  • 📜 Version history and rollback (future release)

The goal is to make the dashboard fully self-service — no code changes required to update or expand.