Artist FC
Artist FC의 경기 점수표·일정·선수 통계
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
PRIME FC Mini 4-a-side League — fixtures, results, live table and squad draw
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Web app for the PRIME FC Mini 4-a-side League 2026: fixtures, results, a live league table and the champion.
One League. Three Teams. One Champion!
Requires Node.js 22.9+. No dependencies to install.
ADMIN_PIN=your-secret-pin npm start # http://localhost:3000
On Windows PowerShell:
$env:ADMIN_PIN = "your-secret-pin"; npm start
| Env var | Default | Purpose |
|---|---|---|
ADMIN_PIN | prime2026 (warns) | PIN needed to enter scores / edit teams |
PORT | 3000 | HTTP port |
DATA_FILE | data/league.json | Where results are saved (when Redis isn't configured) |
Anyone with the link can view. Click Admin in the footer and enter the PIN to enter scores, change match dates, rename teams and run the squad draw.
1=). The rules define no further tie-breaker, so the app doesn't invent one.The 18 players are split into 6 pots of 3 (DEFAULT_POTS in public/lib/league.js). The draw gives each team one player from every pot, so each squad has 6 players. It uses crypto.randomInt on the server and is saved with a timestamp. Redrawing needs an explicit confirmation, so a published draw is never overwritten by accident.
Squads can also be picked by hand: in admin mode, Set squads manually lets you choose each team's player from every pot. The same one-player-per-pot rule is checked, and replacing existing squads needs confirmation.
To change the pot list before the draw, edit DEFAULT_POTS. If data/league.json already exists, edit its pots field instead.
data/uploads/.PLAYER_POINTS in public/lib/league.js). The 🏅 Player of the Season table ranks everyone by points, and ⭐ Player of the Matchday goes to the top points scorer each Saturday (level players share it).Vercel runs server.js directly: its default export is the request handler, and files in public/ are served from Vercel's CDN.
Set these in the Vercel project's environment variables:
| Env var | Purpose |
|---|---|
ADMIN_PIN | Admin PIN. Without it, admin login is disabled. |
UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN | League data (from the Upstash console → your database → REST API). KV_REST_API_URL / KV_REST_API_TOKEN also work. |
BLOB_READ_WRITE_TOKEN | Match photos. Added automatically when a Vercel Blob store is connected to the project. |
Without the Redis variables the app falls back to /tmp, which Vercel wipes on every cold start, so nothing is kept. Saves are version-checked: if two people save at the same moment, the later request is re-run on the newer data instead of overwriting it.
npm run dev # http://localhost:4000, restarts on code changes; reads .env (copy .env.example)
npm test # unit + API tests (node:test)
npm run check # syntax check
public/lib/league.js: pure league logic (fixtures, standings, tie-breakers). Shared by the server and the browser.server.js: zero-dependency HTTP server + JSON API.src/storage.js: where data is saved: data/ locally, or Upstash Redis + Vercel Blob when configured.public/: the web app (vanilla JS, no build step).