A full-stack web application that helps you find the perfect gift for your Steam friends. By analyzing a user's Steam library and wishlist, it uses an algorithm to recommend games based on their actual playtime habits, favorite genres, and current desires.
- Steam Profile Analysis: Fetches real-time data including owned games, playtime, and account status.
- Smart Recommendations: Suggests gifts based on three criteria:
- Wishlist Priority: Items they have explicitly asked for (sorted by date added).
- Genre Affinity: High-rated games in genres they actually play (weighted by playtime).
- Trending: Top-rated games that match their general gaming profile.
- Direct Gifting: "Gift on Steam" buttons link directly to the store page.
- Responsive UI: A modern, dark-themed interface built with React and Tailwind CSS.
Before you begin, ensure you have the following installed:
This project consists of two parts: a Client (React frontend) and a Server (Express backend). You need to set up both.
To fetch user data, you need a free API Key from Valve.
- Go to the Steam Community Developer Page.
- Sign in with your Steam account.
- Enter a domain name (you can use
localhostor your name) and agree to the terms. - Copy your Key. You will need it in the next step.
- Navigate to the server directory:
cd server - Install dependencies:
npm install
- Create your Environment File:
- Create a new file named
.envinside theserverfolder. - Add your API Key to it like this:
STEAM_API_KEY=YOUR_PASTED_KEY_HERE
- Create a new file named
- Start the server:
You should see:
node index.js
Server running on port 5000
- Open a new terminal window (keep the server running!).
- Navigate to the client directory:
cd client - Install dependencies:
npm install
- Start the development server:
npm run dev
- Open the link shown in your terminal (usually
http://localhost:5173) to use the app.
- Enter a Steam ID or Custom URL (e.g.,
shroudor76561198000000000) in the search bar. - Click Analyze.
- Review the "Gift Recommendations" cards on the left.
- Click "Gift on Steam" to go to the store page and purchase the gift.
- "User not found": Double-check the spelling. Some users have custom URLs (like
steamcommunity.com/id/fpsking), while others only have numeric IDs. - "Game library is private": The user must have their Game Details set to Public in their Steam Privacy Settings. Just setting the "Profile" to Public is not enough to see playtime data.
- "Server Error": Check your server terminal. If you see 403 or 401 errors, your API Key in
.envmight be incorrect.
- Frontend: React, Vite, Tailwind CSS, Lucide React (Icons)
- Backend: Node.js, Express, Axios
- API: Steam Web API
