PhantomParlay is a sports betting tracker that lets users upload bet slip screenshots and auto-parses the details to simulate real betting—no money involved, just bragging rights. It's fantasy sports for the sports betting world.
- Frontend: React, TypeScript, Tailwind CSS
- Backend: Node.js, Express
- Database: PostgreSQL (via Supabase)
- Image Processing: Tesseract.js (OCR), Sharp
- Auth & Storage: Supabase (Auth, File Storage)
- Hosting: Vercel (Frontend), Supabase (Backend/Auth)
Users upload screenshots of betting slips (e.g. from DraftKings or FanDuel), and PhantomParlay automatically reads and processes them to populate virtual parlay bets.
Here's how the image parsing pipeline works:
-
Upload Slip:
User uploads a screenshot via the frontend UI. Files are stored in Supabase Storage. -
Preprocessing (Sharp):
We use Sharp to resize, convert, and enhance image contrast to improve OCR accuracy. -
OCR with Tesseract.js:
The enhanced image is parsed using Tesseract.js, a JavaScript-based OCR engine, to extract bet information such as:- Teams
- Wager amounts
- Odds
- Payouts
- Dates
-
Parsing & Matching:
We run basic regex and string matching to identify known team names and normalize the data into structured parlay entries. -
Bet Creation:
The extracted info is saved to the user's virtual betting history, where they can track outcomes over time.
💡 We're currently optimizing OCR accuracy and exploring model fine-tuning for sports betting slip formats.
- 📸 Upload betting slips for auto-parsing
- 🧠 OCR-driven bet creation (no manual input needed)
- 📊 Track wins, losses, payouts, and betting history
- 🏆 Leaderboard & streak tracking (coming soon)