OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗조끼 등판에 넣는 GPS 포드(또는 스마트폰·시계 GPS 기록)의 로그를 올려, 경기마다 선수별 활동량과 같이 뛴 팀원 비교를 보여주는 웹앱입니다. Next.js App Router + TypeScript로 만들어졌고, 모바일 홈 화면에 설치해 쓰는 것을 기준으로 합니다.
예전에 이 주소에서 운영하던 팀 관리(일정·투표·스쿼드·랭킹 등) 기능은 모두 제거했습니다. 그 코드는 git 이력에 남아 있고, DB의 기존 테이블과 데이터는 지우지 않았습니다.
/members에서 분석 대상 선수를 관리합니다.ollama-gateway/의 문자 발송 기능, 아래 환경 변수 참고).DATABASE_URL이 있으면 PostgreSQL(Supabase 등, lib/pg.ts), 없으면 로컬 SQLite(better-sqlite3, lib/sqlite.ts). lib/db.ts가 두 구현을 같은 인터페이스로 감쌉니다.lib/gps/의 순수 TypeScript 모듈. 업로드 요청 안에서 선수당 1초 미만으로 계산합니다.icn1, DB도 서울)app/
page.tsx # /gps로 이동
gps/, gps/[id]/ # 경기 세션 목록, 선수별·팀 비교 화면
members/ # 선수 명단
admin/ # 가입 승인
login/, signup/, find-id/, reset-password/, account/
api/gps/ # 구장, 세션, 로그 업로드, 팀 비교, 예시 경기
api/auth/, api/members/, api/admin/
components/ # Nav, 히트맵·팀 비교·업로드 컴포넌트
lib/
gps/ # 파서, 구장 좌표 변환, 분석, 팀 요약, 시뮬레이션
db.ts, sqlite.ts, pg.ts # DB
auth.ts, roles.ts, sms.ts, otp.ts, phone.ts
hardware/gps-pod/ # 포드 펌웨어 초안(PlatformIO)
ollama-gateway/ # 문자 발송 게이트웨이(맥미니)
docs/ # 로그 형식, DB 리전 이전 절차
npm install
npm run dev
http://localhost:3000에서 확인합니다. DATABASE_URL을 설정하지 않으면 /data/에 로컬 SQLite 파일이 생성됩니다.
npm run build # 프로덕션 빌드
npm run lint # ESLint
| 변수 | 용도 |
|---|---|
DATABASE_URL | 설정 시 Postgres(Supabase) 사용, 없으면 로컬 SQLite |
SESSION_SECRET | 세션 쿠키 서명 비밀키 |
OLLAMA_GATEWAY_URL / OLLAMA_GATEWAY_SECRET | 문자 발송 게이트웨이(아이디·비밀번호 찾기 인증번호) |
Vercel에 배포하며(vercel.json의 함수 리전은 DB와 같은 서울 icn1), 위 환경 변수를 Vercel 프로젝트 설정에 등록하면 됩니다. DB를 다른 리전으로 옮기는 절차는 docs/db-region-migration.md를 참고하세요.