Soccer Prediction Website with Play Money

Job ID: 39918300

Budget: $750 – $1,500 USD

CORE MODULES & TECHNICAL REQUIREMENTS
1. User Accounts & Authentication

Requirements:

Sign up / Login via email + password and mobile number (SMS verification)

Email verification required after signup

Store both email & phone in database for CRM use

Tech Recommendation:

Firebase Auth (simpler SMS + email integration)
or

Supabase Auth (if PostgreSQL-based backend preferred)

Key Features:

Forgot password

Login session persistence

JWT-based token system for API calls

2. Match Data & Live Feed

Goal:
Display live and upcoming football matches, grouped by league, with odds and live updates.

Data Source:
API-Football – https://rapidapi.com/api-sports/api/api-football/

Coverage: 10 leagues initially

Data endpoints:

/fixtures → matches

/odds → pre-match and live odds

/leagues → league data

/events → goals, red cards, etc.

Included Leagues:
Premier League, La Liga, Serie A, Bundesliga, Ligue 1, Süper Lig, Eredivisie, Portuguese Liga, Champions League, Europa League (+ National Teams optional)

Match Card Layout:

League logo + Match time/status

Home & Away team logos

Live score + minute

5 pre-match betting types (and odds)

Buttons: Predict, Challenge a Friend

Update Frequency:

Live data: every 15–30 seconds

Pre-match data: every 15 minutes

UI Reference:
Left: match info
Right: betting types + odds (5 columns)
Similar to Mackolik-style fixture list.

3. Prediction & Challenge System

Concept:
Users spend coins to predict match outcomes or challenge friends to a duel.

Workflows:

User clicks “Challenge a Friend”

Selects market (1X2, Over/Under, etc.) and stake (coins)

System generates a unique challenge link (e.g. https://challengepredict.com/ch/XYZ123
)

Friend opens link → prompted to accept

Match ends → API fetches result, winner gets coins automatically

Rules:

Both players stake the same number of coins

Winner receives total pot minus optional fee

Draw = stake refunded

Match Resolution:
Automatic result fetching from API.

4. Virtual Coin System

Coins Behavior:

Free coins on signup (e.g. 1000 coins)

Used for predictions and challenges

Users can purchase additional coins (no withdrawals)

Integrations:

Stripe checkout

Predefined packages (e.g. 1000 coins = $1)

Webhook updates balance on payment success

Backend Logic:

available_coins, locked_coins

Transaction log (earn/spend/refund)

5. Leaderboard System

Ranking Based On:

Total coins won (net profit)

Filters:

Time: Daily / Weekly / Monthly

League / Country

Displayed Data:
Username, Country, Coins Won, Rank Position

Backend Logic:

Leaderboard updated daily via cron job (Firebase Functions or Supabase Edge Function)

6. My Bets / My Challenges

Sections:

Active Bets: ongoing matches

History: completed matches

Each Record Shows:

Match details

Prediction type

Stake

Result (Win/Loss/Draw)

Coins won/lost

Simple table view with expandable details.

7. Betting Types (Markets)

MVP Scope: 5 markets for both Pre-Match and Live.

# Market Name Outcomes
1 Match Winner (1X2) Home / Draw / Away
2 Over/Under 2.5 Goals Over / Under
3 Both Teams To Score Yes / No
4 First Half Result 1 / X / 2
5 Double Chance 1X / 12 / X2
8. Tech Stack
Layer Technology Reason
Frontend Next.js (React) + TailwindCSS Modern, fast, SEO-friendly
Backend Firebase Functions or Node.js Simple, scalable
Database Firestore or Supabase (PostgreSQL) Real-time updates
Hosting Vercel / Netlify Fast CI/CD
Sports API API-Football Broad league coverage
Auth Firebase / Supabase Auth Email + SMS
Payments Stripe Coin purchases
Notifications Firebase Cloud Messaging Optional challenge alerts
Admin Panel React-based minimal or Firebase Console Manage users, coins, matches
9. Design & UX

Single-page app (SPA)

Tabs: Live Matches, Leaderboard, My Bets, Profile

Sidebar (desktop): League filter

Responsive mobile design (2-column compressed layout)

Visual Style:

Dark mode (#101010)

Odds color animations (green/red)

Buttons: gradient blue-green

Fonts: Inter / Poppins

Inspiration:
LiveScore, Sofascore, Sorare

10. Deliverables

Fully functional MVP (deployed on Vercel/Netlify)

Admin panel (manage users, coins, matches)

Documentation: API setup, Stripe webhook, Firebase/Supabase config

Source code (GitHub repo)

11. Initial Scope Limits

10 leagues only

5 pre-match & 5 live betting types

Virtual coins only (no real money)

Single currency (coins)

English-only UI

Football only (no other sports)

12. Budget & Timeline

Budget: USD 700 – 1,200 total
Timeline: 3–4 weeks

Milestones:

# Deliverables Duration
1 Auth + Match API Integration 1 week
2 Prediction + Challenge + Coin System 1–1.5 weeks
3 Leaderboard + Stripe + My Bets 1 week
13. MVP Validation Goals

Track user engagement in challenges

Measure leaderboard competitiveness

Monitor conversion rate for coin purchases

Collect user feedback on challenge feature

14. Optional Future Expansions

AI-based prediction tips (“Top pick: 68% Over 2.5 Goals”)

Chat / friends list

Tournaments (weekly competitions)

Multi-language support

Mobile app (React Native)