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.
Learn2Vibe AI
Online
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:
- Daily scraping of online casino homepages
- Slot name extraction and normalization
- Slot metadata enrichment
- Popularity tracking and scoring
- Analytics dashboard
- 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
-
Data Collection:
- System scrapes casino homepages daily
- Extracts slot names and rankings
- Normalizes slot names
- Enriches with metadata
- Stores in database
-
Dashboard Usage:
- User accesses dashboard
- Views current popular slots across casinos
- Explores historical popularity trends
- Analyzes slot metadata in relation to popularity
-
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
-
Slots Table:
- id (primary key)
- normalized_name
- logo_url
- rtp
- software_provider
- release_date
-
Casinos Table:
- id (primary key)
- name
- url
-
Daily_Scrape_Results Table:
- id (primary key)
- date
- casino_id (foreign key to Casinos)
- slot_id (foreign key to Slots)
- ranking
- raw_slot_name
-
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
- Set up project using bolt.new with React, TypeScript, and Supabase
- Design and implement database schema in Supabase
- Develop scraping logic and integration with existing API
- Implement slot name normalization algorithm
- Create data enrichment process for slot metadata
- Develop daily scraping and data storage script
- Build React components for dashboard UI
- Implement data fetching and state management in React
- Create visualizations for popularity trends
- Develop analytics queries for historical data
- Implement user interface for exploring and analyzing data
- Set up automated daily scraping process
- Perform thorough testing and bug fixing
- Deploy the application
- 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.