Dugout Value
투구·타격·예측 연구와 선수·계약·트레이드 가치를 비교하는 도구 제공
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기여수한려초등학교 수영부
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
여수한려초등학교 수영부의 선수, 기록, 일정, 활동 자료를 한곳에서 관리하는 웹앱(PWA)입니다. • 운영 주소: https://hallyo.vercel.app • 배포: main 브랜치에 병합되면 Vercel이 자동으로 운영 배포합니다. PR마다 미리보기 배포가 만들어집니다. • Next.js 16 (App Router, Server Actions) · React 19 · TypeScript • Supabase: 로그인(Auth), Postgres DB, Storage(photos 버킷) • Tailwind CSS v4, TanStack Query, react-hook-form + zod, recharts, Leaflet • Sentry (오류 수집), Vercel (배포) ⚠️ 이 프로젝트의 Next.js는 예전 버전과 다른 부분이 있습니다. 예를 들어 미들웨어 대신 src/proxy.ts를 씁니다. 코드를 고치기 전에 node_modules/next/dist/docs/의 문서를 확인하세요. (AGENTS.md 참고) 1. Node.js 20 이상을 준비합니다. 2. 의존성을 설치합니다.README 전문 보기 ↗
여수한려초등학교 수영부의 선수, 기록, 일정, 활동 자료를 한곳에서 관리하는 웹앱(PWA)입니다.
main 브랜치에 병합되면 Vercel이 자동으로 운영 배포합니다. PR마다 미리보기 배포가 만들어집니다.
| 분류 | 메뉴 |
|---|---|
| 선수·기록 | 선수 명단, 선수 기록(지역·전국), 기록 분석, 라이벌 비교, 순위 시뮬레이터 |
| 일정 | 대회 일정(지도·숙소·식당·참가자), 훈련 일정 |
| 자료 | 수영 관련 영상, 대회 영상, 활동 사진, 수영부 연혁, 보도 기사, 명예의 전당 |
| 운영 | 공지사항, 상담 일지(관리 권한), 개발 일지, 마이 페이지, 환경 설정(개발자) |
photos 버킷)⚠️ 이 프로젝트의 Next.js는 예전 버전과 다른 부분이 있습니다. 예를 들어 미들웨어 대신
src/proxy.ts를 씁니다. 코드를 고치기 전에node_modules/next/dist/docs/의 문서를 확인하세요. (AGENTS.md참고)
npm ci
.env.example을 복사해 .env.local을 만들고 값을 채웁니다.
값은 Supabase 대시보드 → Project Settings → API 에서 확인할 수 있습니다.
cp .env.example .env.local
npm run dev
| 이름 | 필수 | 설명 |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | ✅ | Supabase 프로젝트 URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | ✅ | Supabase 공개(anon) 키 |
운영 환경의 값은 Vercel 프로젝트 설정 → Environment Variables 에 들어 있습니다.
| 명령 | 설명 |
|---|---|
npm run dev | 개발 서버 |
npm run build | 운영용 빌드 |
npm run start | 빌드한 앱 실행 |
npm run lint | 코드 검사 (ESLint) |
npx tsc --noEmit | 타입 검사 |
npm test | 단위 테스트 (Vitest, src/**/*.test.ts) |
…@hallyoswim.com 주소로 Supabase Auth에 등록합니다.pending(승인 대기) 상태가 되고, 관리자가 승인해야 대시보드에 들어갈 수 있습니다. 이 흐름은 src/proxy.ts에서 처리합니다. 승인 확인 결과는 10분 동안 쿠키에 기억해 페이지마다 DB를 조회하지 않습니다(자료 접근은 DB 권한 규칙이 따로 막음).admin(관리자), developer(개발자), coach(지도자), athlete(선수), parents(학부모), guest(일반인)
/dashboard/explore. 선수 기록(우리 선수·전국), 기록 분석, 라이벌 비교, 순위 시뮬레이터, 대회 일정(이름·날짜·장소만), 수영 관련 영상, 연혁, 보도 기사, 명예의 전당, 전체 공개 공지, 개발 일지만 볼 수 있습니다. 비회원에게 보이는 선수 정보는 이름·성별·학년뿐이고, 지도자가 고친 분석 문구는 회원 전용입니다. 공개 화면 목록은 src/lib/guest.ts, DB 권한은 schema.sql 11·12번에 있습니다./storage/photos/... 경로(로그인 확인 후 전달)로 보여 줍니다.src/
app/
actions/ Server Actions (DB 쓰기와 권한 확인)
dashboard/ 로그인 후 화면 (메뉴별 폴더)
login/ signup/ pending/
components/ 공용 컴포넌트
data/ 퀴즈·에세이·편지·시 등 고정 콘텐츠
utils/supabase/ Supabase 클라이언트 (서버용 / 브라우저용)
proxy.ts 로그인·승인 여부에 따른 페이지 이동
supabase/
schema.sql DB 스키마 (운영 DB 에서 뽑은 실제 구조)
inspect_schema.sql 운영 DB 실제 구조 확인용 쿼리
manual/ SQL Editor 에서 직접 실행해야 하는 변경
scripts/ 데이터 일괄 등록 등 일회성 스크립트 (앱 빌드와 무관)
public/ 로고, 글꼴, 공유 이미지, 서비스워커
supabase/schema.sql은 운영 DB에서 직접 뽑아 정리한 실제 구조입니다(테이블 18개, 권한 규칙, 함수). 운영 DB에 그대로 실행하지 마세요. DB를 바꾸면 이 파일도 함께 고쳐 주세요.athletes에 컬럼을 추가하면 schema.sql 7번의 grant와 src/lib/athletes.ts의 ATHLETE_COLUMNS에도 넣어야 합니다.supabase/inspect_schema.sql을 실행해 확인할 수 있습니다.is_deleted = true로 표시만 합니다(soft delete). 단, 글에 붙은 사진 파일은 글을 지울 때 저장소에서도 지웁니다. 남은 파일은 환경 설정 → 사진 저장소 정리로 지울 수 있습니다.audit_logs 테이블에 남습니다.© 2026 엽쌤 · 달디단