Futbol Veritabanı
8대 리그 클럽·선수·통계—Transfermarkt 데이터
프랑스어 NBA 앱, 실시간 점수·일정·순위·선수·팀 통계·뉴스·기사·미니게임 제공, Hoopus에서 시즌 전체를 따라가세요
L'app NBA en français : scores en direct, calendrier, classements, statistiques des joueurs et des équipes, actualités, articles et mini-jeux. Suivez toute la saison NBA sur Hoopus.
스포츠·피트니스TypeScript · JavaScriptGitHub @MaelAbat온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기French-language NBA companion app — live scores, schedule, standings, stats and mini-games. Built with Next.js + Supabase.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A French-language NBA companion app: live scores, schedule, standings, stat leaders, player career stats, playoffs, news, articles, and mini-games.
Live at hoopus.fr.
• Framework — Next.js 16 (App Router, React 19, TypeScript)
• Styling — Tailwind CSS 4
• Database & Auth — Supabase (Postgres with Row Level Security)
• Hosting — Vercel (cron jobs included)
• Data sources — NBA Stats API, ESPN, YouTube Data API v3README 전문 보기 ↗A French-language NBA companion app: live scores, schedule, standings, stat leaders, player career stats, playoffs, news, articles, and mini-games.
Live at hoopus.fr.
NEXT_PUBLIC_TRADE_MACHINE=1 to enable it)Prerequisites: Node.js 20+, a Supabase project, a YouTube Data API v3 key.
git clone https://github.com/MaelAbat/hoopus.git
cd hoopus
npm install
cp .env.example .env.local
# fill in the values in .env.local
npm run dev
The dev server runs on http://localhost:3002.
See .env.example for the full list. You will need:
NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY — client-side Supabase access (safe to expose, protected by RLS)SUPABASE_SERVICE_ROLE_KEY — server-side admin access (keep secret)CRON_SECRET — shared secret for authenticating cron job callsYOUTUBE_API_KEY — for fetching match highlight videosNEXT_PUBLIC_SITE_URL — used for auth redirectsMigrations live in supabase/migrations/ and run in numerical order. Apply them through the Supabase dashboard or the Supabase CLI.
Game data, standings, stats, and rosters are refreshed via a daily Vercel cron at 08:00 UTC (vercel.json). Individual sync endpoints exist under /api/sync-* and require the CRON_SECRET in the Authorization header.
To run a sync manually from the command line:
npm run sync # full sync
npm run sync:history # backfill historical games
npm run sync:market # backfill the transaction market and drafts (2015-16 → today)
npm run sync:market -- --drafts-since 1950 # every NBA draft, no transactions
Drafts and transactions have different horizons on purpose. Transactions start in 2015-16, like the rest of the site: earlier than that, no rosters or standings exist to give them meaning. A draft stands on its own, so the archive goes back to 1950 — the first NBA draft, the 1947-1949 ones having been run by the BAA.
sync:market is deliberately kept out of the cron: it reads one Basketball Reference
page per season at a polite 3.2s interval, which is far beyond the 60s a serverless
function gets. The daily cron keeps the current season fresh (/api/sync-transactions,
/api/sync-draft); this script fills in the past.
src/app/ Next.js App Router pages and API routes
src/components/ Reusable React components
src/lib/ Supabase clients, data fetchers, utilities
scripts/ CLI sync scripts (tsx)
supabase/ SQL migrations
public/ Static assets
Pushes to main are auto-deployed by Vercel. Environment variables are managed in the Vercel dashboard. No CI runs in this repository (.gitlab-ci.yml disables GitLab pipelines).
ISC.