"What game should I play?" - A work-in-progress game recommendation system
Ever spend more time browsing game libraries than actually playing? This project aims to fix that by building a smart recommendation engine that actually understands what you like.
- Similar Games Discovery: Find games similar to your favorites using TF-IDF content-based recommendations
- Natural Language Search: Search for games by describing what you want (e.g., "space shooter with crafting")
- Tag-Based Filtering: Filter games by genres, themes, platforms, and more
- Explainable Recommendations: See why games were recommended with match reason badges
- Framework: Spring Boot 3.5.6 (Kotlin)
- Database: PostgreSQL with full-text search
- Algorithms: TF-IDF (Apache Lucene), BM25 (PostgreSQL)
- Data: ~7,500 games from IGDB and RAWG APIs
- Framework: React 18 + TypeScript + Vite
- UI Library: Material-UI (MUI) v5
- State Management: TanStack Query (React Query)
- Styling: Styled Components + MUI theming
- Language: Python 3.12
- APIs: IGDB, RAWG
- Processing: ETL pipeline for game data ingestion
- Java 21
- Node.js 20+
- PostgreSQL 15+
- Yarn
- Python 3.12 (for data engineering)
cd backend
./gradlew bootRunAPI runs on http://localhost:8080
Frontend Setup
cd frontend
yarn install
yarn devApp runs on http://localhost:5173
Data Engineering
cd data-engineering
uv sync
make fetch # Fetch game data from APIs📁 Project Structure
ShoDaIgram/
├── backend/ # Spring Boot API
├── frontend/ # React TypeScript app
└── data-engineering/ # Python ETL scripts