NBA Feed
팀 뉴스와 경기 정보를 제공, 점수는 직접 확인할 때까지 숨겨져 있습니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
大学体育館のバドミントンコート予約システム。海外大学の学生体育会向けに無償提供することを想定した、紙ベース予約(コピー配布)を置き換えるアプリです。 • Next.js (App Router) + TypeScript + Tailwind CSS • Supabase (Auth + PostgreSQL + Row Level Security) • Stripe (決済・返金 / 未実装、後日連携予定) • PWA (manifest + Service Worker、QRコードからブラウザ直接アクセス) • 日本語 / English / 中文 の3言語切り替え(カスタム軽量i18n、ヘッダー常時表示) 1. 予約カレンダー画面 (/reserve): コート × 時間枠の空き状況をカレンダー表示。予約・キャンセル操作。 2. アカウント登録・ログイン (/signup, /login): 大学メールアドレスでのメール確認付きサインアップ、プロフィール入力(/profile)。 3. 最小限のバックエンド: Supabase のテーブル設計・RLSポリシー・二重予約防止(ユニーク制約)。README 전문 보기 ↗
大学体育館のバドミントンコート予約システム。海外大学の学生体育会向けに無償提供することを想定した、紙ベース予約(コピー配布)を置き換えるアプリです。
/reserve): コート × 時間枠の空き状況をカレンダー表示。予約・キャンセル操作。/signup, /login): 大学メールアドレスでのメール確認付きサインアップ、プロフィール入力(/profile)。決済(Stripe)連携、体育会スタッフ/管理者向け管理画面、CSV出力、レンタル機能(将来拡張)は未実装です。DB設計はレンタル機能を見据えた形(equipment / equipment_loans テーブル)にしてあります。
supabase.com で新規プロジェクトを作成し、Project Settings > API から URL と anon key を取得します。
Supabase ダッシュボードの SQL Editor で以下を順に実行してください。
supabase/migrations/0001_init.sql -- テーブル・RLS・関数
supabase/seed.sql -- (任意) サンプルコートの投入
もしくは Supabase CLI を使う場合:
supabase link --project-ref <project-ref>
supabase db push
.env.example を .env.local にコピーして値を設定します。
cp .env.example .env.local
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEY: Supabase の Project Settings > APINEXT_PUBLIC_ALLOWED_EMAIL_DOMAINS: サインアップを許可する大学メールドメイン(カンマ区切り)。未設定なら制限なしhttp://localhost:3000/auth/callback(本番URLも追加)を登録してください。npm install
npm run dev
http://localhost:3000 にアクセスします。
app/
(auth)/login, signup # 認証画面
(main)/reserve, profile # 予約カレンダー / プロフィール
auth/callback # Supabase メール確認コールバック
api/reservations # 予約作成・キャンセル API
components/ # UI コンポーネント
lib/supabase/ # Supabase クライアント(browser/server/middleware)
lib/i18n/ # 多言語辞書・Context
lib/reservation/ # 時間枠生成・キャンセル期限などのルール
supabase/migrations/ # DBスキーマ (SQL)
types/database.ts # テーブル型定義
profiles.role に student / staff / admin を保持します(RLSで制御)。現時点では一般学生の予約フローのみ実装済みで、スタッフ/管理者向け画面は未実装です。
reservations テーブルに (court_id, reservation_date, start_time) の部分ユニークインデックス(status in ('pending_payment','confirmed'))を設定し、同時アクセスでも二重予約が発生しないようにしています。status = 'pending_payment' とし、hold_expires_at を過ぎた仮予約は expire_stale_reservations() 関数(pg_cron 等での定期実行を想定)で自動失効させる設計です。MVPでは決済ステップがないため、予約は即座に confirmed になります。