Free Game Finder is a native Android application designed to track and aggregate limited-time, 100% free-to-claim PC games. Instead of manually checking multiple storefronts, this app provides a centralized dashboard to view active giveaways, track historical price lows, and manage a personal watchlist.
- Storefront Aggregation: Automatically pulls active free-to-claim promotions from Steam, Epic Games, and GOG.
- Visual Grids & Live Timers: Displays games using their official cover art alongside live, ticking countdown timers showing exactly when the promotion ends.
- Personal Watchlist: Users can search for specific games and add them to a local watchlist to track them for future 100% off discounts.
- Claimed History & Savings: Features a long-press hidden menu to mark games as "Claimed," which grays them out on the main feed and adds their original price to a "Total Estimated Savings" tracker on the user's Profile.
- GG.Deals Integration: Includes a dedicated tab to view the current "Historical Lows" across the gaming market, with a direct link to view the deals on the official GG.deals website.
- Custom Theming: Features a built-in dynamic theme engine allowing users to switch between Light, Dark, Steam Blue, and msDOS Green & Black modes.
This project utilizes a decoupled client-server architecture to minimize mobile battery drain and avoid storefront IP bans.
Frontend (Android/Mobile)
- Language: Kotlin
- UI Framework: Jetpack Compose (MVVM Architecture)
- Local Data: Room SQLite (Database), Coil (Image Loading)
- Networking: Retrofit2, Gson
- Background Tasks: Android WorkManager
Backend (API/Scraper)
- Language: Python
- Framework: FastAPI
- Automation: APScheduler
- Data Extraction: BeautifulSoup4, Regex
- Deployment: Docker
- The Scraper Engine: A headless Python Docker container runs silently on a local server, scraping Epic Games, Steam, and GOG every 45 minutes. It filters out demos, DLCs, and "Free to Play" junk using Regex and BeautifulSoup, compiling only legitimate 100% off base games (still buggy/some DLC shows).
- The API Endpoint: FastAPI serves the cleaned, aggregated data as a single, lightweight JSON payload.
- The Mobile Client: The Android app consumes this local API via Retrofit, preventing the mobile device from having to execute heavy web-scraping logic. Users can save games locally using a Room SQLite database.
- Background push notifications when new games go free or a watchlist game hits a 100% discount.
- Push notifications for games expiring in less than 24 hours.
- Multi language localization support.