스크린골프·필드 모임 일정과 공지를 한곳에서 확인하세요.
Translation pending
Sports & fitnessTypeScript · PowerShellGitHub @JeoungJinOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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 ↗스크린골프·필드 모임 회원용 모바일 우선 웹앱(PWA). Next.js + Supabase + Vercel 무료 티어로 운영합니다.
현재 기능(specs/001-kakao-login-home): 카카오 로그인, 가입 승인(첫 가입자는 매니저), 홈 대시보드(가장 가까운 라운딩·최신 공지), 공지 등록·수정·삭제, 홈 화면에 추가 안내.
npm install
npx supabase start # Docker Desktop 필요. 출력된 URL/키를 .env.local 에 복사 (.env.example 참고)
npx supabase db reset # 마이그레이션 + 시드(개발용 샘플 라운딩)
npm run dev
supabase/.env.example을 supabase/.env로 복사해 REST API 키와 클라이언트 시크릿을 넣고 npx supabase stop && npx supabase start로 재시작합니다(config.toml에 provider가 이미 켜져 있음). E2E는 카카오를 거치지 않고 세션을 주입하므로 이 설정 없이도 동작합니다.
npm run check # lint + tsc + Vitest(도메인 100% 커버리지 기준)
npm run test:db # pgTAP: RLS·승인 RPC·트리거 (E2E 후에는 먼저 `npx supabase db reset` — 남은 사용자가 있으면 실패)
npm run test:e2e # Playwright (360px), 로컬 Supabase 실행 필요
배포는 아래 순서로 한 번만 진행합니다. 비용은 모두 무료 티어 안에서 발생하지 않습니다.
seed.sql은 개발용이라 운영에는 적용되지 않습니다.
npx supabase login
npx supabase link --project-ref <프로젝트 ref>
npx supabase db push
Project URL과 anon public 키를 확인합니다. service_role 키는 어디에도 등록하지 않습니다(앱은 사용하지 않고, 로컬 E2E 테스트에서만 씁니다).https://<프로젝트 ref>.supabase.co/auth/v1/callback 을 등록합니다.account_email을 함께 요청합니다. 카카오 콘솔에 이메일 동의항목이 없으면 "설정하지 않은 동의 항목: account_email" 오류가 납니다. 이메일이 "동의불가"로 보이면 앱을 개인 개발자 비즈 앱으로 전환(사업자 등록 불필요)한 뒤 카카오계정(이메일)을 선택 동의로 설정하세요. 선택 동의라 거부해도 로그인되려면 Supabase의 "Allow users without an email"이 필요합니다(아래 3번).auth.users에 이메일이 저장됩니다(앱 테이블 members에는 저장하지 않음).http://localhost:54321/auth/v1/callback, http://127.0.0.1:54321/auth/v1/callbackhttps://<배포 도메인>https://<배포 도메인>/auth/callbackNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY운영 DB에서 가장 먼저 카카오 로그인한 계정이 매니저가 되고 자동 승인됩니다. 배포 직후 운영자가 먼저 로그인하세요. 이후 가입자는 승인 대기 상태가 되며 /admin/members에서 승인합니다.
public/icons/)은 임시 이미지입니다. 모임 로고로 교체하세요(192, 512, maskable 512).specs/001-kakao-login-home/quickstart.md의 8개 시나리오를 iOS Safari·Android Chrome 실기기에서 확인합니다. 특히 실제 카카오 로그인, iOS 공유 버튼 안내, Android 설치 버튼은 자동 테스트로 검증할 수 없습니다.