Skip to content

rick-mingyu-liu/PriceValve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

88 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ PriceValve: Steam Game Revenue Maximization Interface

Real-time Steam game analysis with revenue optimization-driven pricing recommendations

๐ŸŽฏ Project Overview

PriceValve is an intelligent pricing platform that analyzes Steam games in real-time and provides Revenue Optimizing pricing recommendations. The system combines data from Steam APIs, sentiment analysis, and demand estimation models to help developers optimize their game pricing strategy.

Key Features

  • ๐Ÿ” Real-time Steam Data Analysis: Fetch and analyze game data from Steam Web API, SteamSpy API and ITAD (IsThereAnyDeal) API,
  • ๐Ÿ“Š Price Analysis: Comprehensive pricing analysis with competitor comparison
  • ๐Ÿ“ˆ Price Recommendations: Model-generated pricing suggestions with confidence scores
  • ๐Ÿ“ฑ Modern Web Interface: Beautiful React/Next.js frontend with real-time updates
  • ๐Ÿ† Competitor Comparison: Comprehensive analysis of similar games and market positioning
  • ๐ŸŽฎ Game Discovery: PriceValveScript.js-inspired game search and selection functionality

๐Ÿ“ Project Architecture

PriceValve/
โ”œโ”€โ”€ ๐Ÿ“ backend/                    # Node.js/Express Backend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ controllers/        # API controllers
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ services/           # Business logic services
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ routes/             # API route definitions
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ types/              # TypeScript type definitions
โ”‚   โ”‚   โ””โ”€โ”€ server.ts              # Express server setup
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ tsconfig.json
โ”‚   โ””โ”€โ”€ .gitignore
โ”œโ”€โ”€ ๐Ÿ“ frontend/                   # Next.js 15 Frontend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ app/                # Next.js App Router
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ analyze/        # Game analysis pages
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ components/         # React components (shadcn/ui)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ analysis/       # Analysis result components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ ui/             # UI components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ GameSelector.tsx   # Game discovery component
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Navbar.tsx         # Navigation component
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ SteamGameCard.tsx  # Game card component
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ lib/                # Utility functions
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ utils/              # API client & utilities
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ next.config.js
โ”‚   โ”œโ”€โ”€ tailwind.config.js
โ”‚   โ””โ”€โ”€ .gitignore
โ”œโ”€โ”€ ๐Ÿ“ node_modules/               # Dependencies
โ”œโ”€โ”€ package.json                   # Root package.json
โ”œโ”€โ”€ package-lock.json              # Lock file
โ”œโ”€โ”€ tsconfig.json                  # TypeScript config
โ”œโ”€โ”€ eslint.config.js               # ESLint config
โ”œโ”€โ”€ .gitignore                     # Git ignore rules
โ””โ”€โ”€ README.md

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+
  • Steam Web API Key (optional, for enhanced features)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd PriceWave
  2. Install dependencies

    # Install root dependencies
    npm install
    
    # Install backend dependencies
    cd backend && npm install
    
    # Install frontend dependencies
    cd ../frontend && npm install
  3. Set up environment variables

    Backend (.env):

    PORT=5001

    Frontend (.env.local):

    NEXT_PUBLIC_API_URL=http://localhost:5001
  4. Start development servers

    # From root directory
    npm run dev

    This starts:

๐ŸŽฎ Frontend Features

Core Analysis Features

The frontend provides comprehensive game analysis with a modern, intuitive interface:

Game Analysis Workflow

  • Steam URL Input: Paste any Steam game URL for instant analysis
  • Real-time Analysis: Get comprehensive pricing insights in seconds
  • Interactive Charts: Visual competitor and trend analysis
  • Actionable Recommendations: Specific steps to optimize pricing
  • Executive Summary: High-level analysis overview

Analysis Components

  • GameHeader: Game information display with optimization score
  • PricingAnalysisResults: Detailed pricing recommendations
  • RecommendedActions: Actionable insights and next steps
  • AnalysisCharts: Interactive charts for competitor and trend analysis
  • ExecutiveSummary: High-level analysis summary
  • PriceOptimizationCard: Price optimization recommendations
  • TimingOptimizationCard: Launch timing recommendations

๐Ÿ“Š Data Models

Core Game Data Model

interface Game {
  appId: number;                    // Steam App ID
  name: string;                     // Game name
  developer: string;                // Developer name
  publisher: string;                // Publisher name
  
  // Steam API Data
  steamData: SteamGameData;
  
  // SteamSpy Data
  steamSpyData: SteamSpyData;
  
  // Analysis Results
  priceAnalysis: PriceAnalysis;
  playerAnalysis: PlayerAnalysis;
  marketAnalysis: MarketAnalysis;
  reviewAnalysis: ReviewAnalysis;
  
  // Revenue Optimization Predictions
  revenuePredictions: RevenuePredictions;
  
  // PriceValveScript.js Properties
  cluster?: string;                 // Cluster group for similar games
  
  // Metadata
  tags: GameTag[];
  genres: string[];
  lastUpdated: Date;
}

Revenue Optimization Prediction Model

interface RevenuePredictions {
  priceForecast: {
    nextWeek: number;
    nextMonth: number;
    confidence: number;
  };
  sentimentTrend: {
    current: number;
    predicted: number;
    direction: 'up' | 'down' | 'stable';
  };
  optimalPrice: {
    suggested: number;
    confidence: number;
    reasoning: string[];
  };
  marketPosition: {
    category: string;
    score: number;
    competitors: string[];
  };
  priceElasticity: {
    value: number;
    interpretation: string;
    similarGames: number;
  };
}

๐Ÿ”Œ API Endpoints

Game Analysis

  • POST /api/analyze - Analyze a single game
  • POST /api/analyze/batch - Analyze multiple games
  • GET /api/search - Search games
  • GET /api/featured - Get featured games
  • GET /api/top-games - Get top games
  • GET /api/genres - Get all genres
  • GET /api/genres/:genre - Get games by genre

Individual Data

  • GET /api/steam/:appId - Steam game data
  • GET /api/steamspy/:appId - SteamSpy data

Health Check

  • GET /api/health - API health status

๐ŸŽจ Frontend Components

Built with shadcn/ui and Tailwind CSS:

Core Components

  • Navbar - Navigation component
  • SteamGameCard - Game information card

Analysis Components

  • GameHeader - Game information display
  • PricingAnalysisResults - Pricing recommendations
  • RecommendedActions - Actionable insights
  • AnalysisCharts - Interactive charts
  • ExecutiveSummary - Analysis summary
  • PriceOptimizationCard - Price optimization
  • TimingOptimizationCard - Timing recommendations

UI Components

  • Button - Styled button component
  • SearchBar - Game search functionality

๐Ÿ“ˆ Data Sources

Steam Web API

  • Game metadata
  • Pricing information
  • Review data
  • Player statistics

SteamSpy API

  • Ownership data
  • Player engagement
  • Market positioning
  • Genre analysis

๐Ÿ”ง Development

Backend Development

cd backend
npm run dev          # Start development server
npm run test         # Run tests
npm run build        # Build for production

Frontend Development

cd frontend
npm run dev          # Start development server
npm run build        # Build for production
npm run lint         # Run linter

๐Ÿš€ Deployment

Backend Deployment

cd backend
npm run build
npm start

Frontend Deployment

cd frontend
npm run build
npm start

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

Built with โค๏ธ for SpurHacks 2025 and the Steam gaming community

About

SpurHacks 2025

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •