- More details: https://devpost.com/software/pricevalve
Real-time Steam game analysis with revenue optimization-driven pricing recommendations
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.
- 🔍 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
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
- Node.js 18+
- Steam Web API Key (optional, for enhanced features)
-
Clone the repository
git clone <repository-url> cd PriceWave
-
Install dependencies
# Install root dependencies npm install # Install backend dependencies cd backend && npm install # Install frontend dependencies cd ../frontend && npm install
-
Set up environment variables
Backend (.env):
PORT=5001
Frontend (.env.local):
NEXT_PUBLIC_API_URL=http://localhost:5001
-
Start development servers
# From root directory npm run devThis starts:
- Frontend: http://localhost:3000
- Backend: http://localhost:5001
The frontend provides comprehensive game analysis with a modern, intuitive interface:
- 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
- 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
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;
}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;
};
}POST /api/analyze- Analyze a single gamePOST /api/analyze/batch- Analyze multiple gamesGET /api/search- Search gamesGET /api/featured- Get featured gamesGET /api/top-games- Get top gamesGET /api/genres- Get all genresGET /api/genres/:genre- Get games by genre
GET /api/steam/:appId- Steam game dataGET /api/steamspy/:appId- SteamSpy data
GET /api/health- API health status
Built with shadcn/ui and Tailwind CSS:
Navbar- Navigation componentSteamGameCard- Game information card
GameHeader- Game information displayPricingAnalysisResults- Pricing recommendationsRecommendedActions- Actionable insightsAnalysisCharts- Interactive chartsExecutiveSummary- Analysis summaryPriceOptimizationCard- Price optimizationTimingOptimizationCard- Timing recommendations
Button- Styled button componentSearchBar- Game search functionality
- Game metadata
- Pricing information
- Review data
- Player statistics
- Ownership data
- Player engagement
- Market positioning
- Genre analysis
cd backend
npm run dev # Start development server
npm run test # Run tests
npm run build # Build for productioncd frontend
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run lintercd backend
npm run build
npm startcd frontend
npm run build
npm start- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
Built with ❤️ for SpurHacks 2025 and the Steam gaming community