Skip to content

ktalatiuf/GoalLine

Repository files navigation

GoalLine

AI-powered resale ticket analytics for FIFA World Cup 2026. Track prices from Vivid Seats, get buy/wait recommendations, set price alerts, and manage a match watchlist.

All routes except the landing page require authentication.


Stack

  • Framework — Next.js 14 (App Router), TypeScript
  • Styling — Tailwind CSS, shadcn/ui
  • Database — PostgreSQL + Prisma
  • Auth — JWT (jose) + bcryptjs
  • Charts — Recharts
  • AI — Rule-based statistical prediction engine (no LLM)

Quick Start

npm install
cp .env.example .env   # fill in DATABASE_URL and JWT_SECRET
npm run db:push
npm run db:seed
npm run dev

Open http://localhost:3000

Demo login: demo@worldcuptickets.ai / demo1234


Environment Variables

Variable Required Description
DATABASE_URL Yes PostgreSQL connection string
JWT_SECRET Yes JWT signing secret (32+ chars)
NEXT_PUBLIC_APP_URL No Public URL for links
JOB_SECRET No Bearer token for /api/jobs/* endpoints
STUBHUB_API_KEY No StubHub API key for live data
STUBHUB_API_BASE No StubHub API base URL

Background Jobs

Script Purpose Schedule
npm run job:sync Scrape TicketData.com via Playwright Every 30 min
npm run job:ingest Fetch live prices from Vivid Seats + StubHub Every 60 min
npm run job:predict Refresh AI predictions Every 6 hours
npm run job:alerts Evaluate alert rules Every 15 min

Features

  • Price tracking — live Vivid Seats prices with 7/30/60/90-day history charts
  • AI recommendations — BUY NOW / WAIT / MONITOR with confidence score and explanation
  • Trend indicators — RISING / FALLING / STABLE / VOLATILE via linear regression
  • Seat categories — Category 1/2/3, Club, VIP/Hospitality breakdown
  • Watchlist — save matches, tracked per user
  • Price alerts — 4 types: price target, percent drop, AI buy signal, buy zone entry

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages