Ranking Submit Worker
Ranking Submit Worker
https://broryda.github.io/ranking/submit는 정적 GitHub Pages라 쓰기(POST 저장)가 불가능합니다.
이 Worker는 앱의 랭킹 제출을 받아 ranking/ranking.json + ranking/ranking_public.json을 GitHub API로 갱신합니다.
1) 준비
- Cloudflare Workers 사용 가능 계정
- GitHub Personal Access Token (repo contents write 권한)
- 로컬에서:
cd ranking/worker npm install
2) 시크릿 설정
npx wrangler secret put GITHUB_TOKEN
선택(보안 강화):
npx wrangler secret put SUBMIT_SHARED_KEY
앱에서 이 키를 x-submit-key 헤더로 보내야 합니다.
3) 배포
npx wrangler deploy
배포 후 endpoint:
- health:
GET https://<your-worker>.workers.dev/health - submit:
POST https://<your-worker>.workers.dev/submit
4) 앱 연동
앱의 submit URL을 Worker URL로 변경하세요.
현재 앱 파일:
C:/flutter/SahwalReact/src/data/rankingStore.ts
RANKING_SUBMIT_URL를 Worker URL로 교체하면 됩니다.
5) payload 형식
{
"deviceId": "dev_xxxx",
"nickname": "사용자",
"solvedCount": 123,
"elo": 1450,
"sentAt": "2026-04-26T12:00:00.000Z"
}
6) 처리 규칙
- deviceId 기준 중복 제거
- solvedCount 높은 기록 우선
- 동률이면 elo 높은 기록 우선
- 공개 파일(
ranking_public.json)에는 deviceId 미포함