全端網頁應用程式
GamePriceHub
比較 PC 遊戲的現價、折扣和價格走勢,並查看各大平台的發售資訊。
狀態:測試版- 類別
- 全端網頁應用程式
- 技術
- Next.js, TypeScript, Supabase, Vercel, Playwright
概要
GamePriceHub 是一個全端比價產品,把 PC 遊戲的現價、折扣、價格走勢記錄和跨平台發售資訊集中在一個可搜尋的地方。
我的角色
我由頭到尾設計和開發這個產品,範圍包括產品方向、介面、應用程式架構、數據擷取、資料庫設計、測試和部署。
問題
買遊戲的資訊分散在不同商店、地區和發售日曆之間。想比較某個版本,或判斷一個折扣是否真的划算,往往要打開多個來源,再自行整合互相矛盾的數據。
用戶及使用情境
這個產品為想快速發掘遊戲、比較各 PC 商店價格,並在決定購買或關注前查看發售時間的玩家而設。
限制條件
項目圍繞注重成本的個人開發流程設計。在產品仍在驗證階段時,開發組合保持在免費服務額度之內,刻意限制遊戲目錄的擷取量,並避免使用付費搜尋基建。
解決方案
用戶可以瀏覽和搜尋遊戲目錄、打開遊戲詳情頁、比較各商店的上架資料、查看折扣和價格變動記錄,以及發售資訊。清楚的來源說明和意見回饋渠道,讓數據的限制一目了然,而不是誇大覆蓋範圍。
等待資料
- 以已批核的產品截圖取代預留位置
架構及流程
Next.js 應用程式提供產品介面和伺服器端路由。Supabase 儲存遊戲目錄、版本、上架資料、價格、歷史記錄和擷取紀錄。定時和手動擷取工作會先把外部數據標準化,再寫入共用的數據模型;應用程式由 Vercel 託管,並以 Sentry 協助監察。
關鍵決定
遊戲目錄把數據供應商的識別碼與標準遊戲記錄分開,讓多個數據來源可以對應同一筆記錄。價格歷史只在數值改變時才寫入,減少不必要的儲存。每次更新的結果連同冷卻時間一併保存,讓定時擷取穩步推進,而不會反覆重試不適合的記錄。
測試及交付
交付流程結合單元測試、元件測試、Playwright 瀏覽器測試、靜態型別檢查、程式碼檢查和正式建置。對於會影響線上數據的改動,部署檢查點亦會記錄資料庫遷移次序、擷取驗證和上線準備情況。
目前限制
商店和地區價格的覆蓋範圍仍比發售目錄窄,所以不少遊戲暫時未能提供有意義的多商店比較。部分資料補充工作仍需手動進行,而產品亦刻意不聲稱提供目前數據來源未有的遊戲機價格。
心得及下一步
產品最大的價值來自可信的數據覆蓋,而不是加入更多介面功能。下一個重點是擴闊可靠的商店和地區支援,同時保持來源透明、控制擷取成本,並清楚區分已驗證的數據和計劃中的功能。