How to Build an Online Casino Slot Popularity Tracker and Analytics Dashboard

A system for scraping and analyzing popular slot games featured on online casino homepages, tracking their popularity over time, and providing a dashboard with slot metadata and analytics.

Create your own plan

Learn2Vibe AI

Online

AI

What do you want to build?

Simple Summary

This project aims to build a system for scraping online casino homepages to track popular slot games over time, with a dashboard for displaying slot metadata and popularity trends.

Product Requirements Document (PRD)

Goals:

  • Scrape online casino homepages to extract popular slot game names
  • Track slot popularity across hundreds of casinos over time
  • Provide a dashboard with slot metadata and popularity analytics

Target Audience:

  • Online casino industry analysts
  • Slot game developers
  • Casino operators

Key Features:

  1. Daily scraping of online casino homepages
  2. Slot name extraction and normalization
  3. Slot metadata enrichment
  4. Popularity tracking and scoring
  5. Analytics dashboard
  6. Historical data storage and analysis (at least 1 year)

User Requirements:

  • Ability to view popular slots across multiple casinos
  • Access to slot metadata (logo, RTP, software provider, release date)
  • Visualization of slot popularity trends over time
  • Ranking-based popularity scoring

User Flows

  1. Data Collection:

    • System scrapes casino homepages daily
    • Extracts slot names and rankings
    • Normalizes slot names
    • Enriches with metadata
    • Stores in database
  2. Dashboard Usage:

    • User accesses dashboard
    • Views current popular slots across casinos
    • Explores historical popularity trends
    • Analyzes slot metadata in relation to popularity
  3. Data Analysis:

    • User queries historical data
    • Compares slot popularity across casinos
    • Identifies trends over time (up to 1 year)
    • Examines correlation between metadata and popularity

Technical Specifications

  • Frontend: React with TypeScript
  • Backend: Supabase
  • Scraping: Existing API that returns rendered HTML
  • Database: Supabase (PostgreSQL)
  • Development Platform: bolt.new

API Endpoints

N/A

Database Schema

  1. Slots Table:

    • id (primary key)
    • normalized_name
    • logo_url
    • rtp
    • software_provider
    • release_date
  2. Casinos Table:

    • id (primary key)
    • name
    • url
  3. Daily_Scrape_Results Table:

    • id (primary key)
    • date
    • casino_id (foreign key to Casinos)
    • slot_id (foreign key to Slots)
    • ranking
    • raw_slot_name
  4. Slot_Name_Aliases Table:

    • id (primary key)
    • slot_id (foreign key to Slots)
    • alias

File Structure

/src /components Dashboard.tsx SlotList.tsx PopularityChart.tsx MetadataDisplay.tsx /pages Home.tsx Analysis.tsx /utils scraper.ts nameNormalizer.ts dataEnricher.ts /types SlotTypes.ts CasinoTypes.ts /services api.ts database.ts /hooks useSlotData.ts useCasinoData.ts App.tsx index.tsx /public index.html assets/ /scripts dailyScrape.ts dataUpload.ts

Implementation Plan

  1. Set up project using bolt.new with React, TypeScript, and Supabase
  2. Design and implement database schema in Supabase
  3. Develop scraping logic and integration with existing API
  4. Implement slot name normalization algorithm
  5. Create data enrichment process for slot metadata
  6. Develop daily scraping and data storage script
  7. Build React components for dashboard UI
  8. Implement data fetching and state management in React
  9. Create visualizations for popularity trends
  10. Develop analytics queries for historical data
  11. Implement user interface for exploring and analyzing data
  12. Set up automated daily scraping process
  13. Perform thorough testing and bug fixing
  14. Deploy the application
  15. Set up monitoring and maintenance processes

Deployment Strategy

Information not available in conversation.

Design Rationale

The database schema is designed to efficiently store and query daily scraping results while maintaining historical data for at least a year. The separation of slots, casinos, and daily scrape results allows for flexible querying and analysis of popularity trends over time. The slot name aliases table facilitates name normalization, addressing the challenge of matching slightly different names for the same slot across casinos. The ranking storage in the daily scrape results enables more accurate popularity scoring, as requested in the conversation.