OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
COPA ALMA tournament entry and administration system.
Translation pending
Sports & fitnessTypeScript · JavaScriptGitHub @kenboo-sckOnlineOwner 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 ↗格闘技大会「COPA ALMA」のWebエントリー管理システムです。複数大会、個人エントリー、代表者エントリー、期間別料金、決済ステータス管理、管理画面を前提にしたNext.js + Firebase構成です。
StripeとCloud Functionsの本実装は次フェーズで追加します。
npm install
cp .env.example .env.local
npm run dev
Firebase Emulatorを使う場合:
npm run emulators
Stripe Checkout、Firestore 保存、決済前の重複チェック、完了メール送信を本番で動かすために、Vercel には以下を設定してください。
NEXT_PUBLIC_FIREBASE_API_KEYNEXT_PUBLIC_FIREBASE_AUTH_DOMAINNEXT_PUBLIC_FIREBASE_PROJECT_IDNEXT_PUBLIC_FIREBASE_STORAGE_BUCKETNEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_IDNEXT_PUBLIC_FIREBASE_APP_IDNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYNEXT_PUBLIC_STRIPE_TEST_MODESTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETMAIL_PROVIDERPHP_MAIL_API_URLMAIL_PROVIDER_API_KEYADMIN_NOTIFICATION_EMAILMAIL_FROM_ADDRESSエントリーの保存、参加費の確定、支払状態の更新(Stripe 決済の確定、振込入金・現金受領の記録)は、 API ルートが Firebase Admin SDK で行います。Firestore ルールでは、一般ユーザーによるエントリーの 直接の読み書きをすべて拒否しています。次のいずれかを設定してください(値はコードや Git に含めないでください)。
FIREBASE_SERVICE_ACCOUNT_JSON(サービスアカウントキーの JSON 全文。base64 でも可)FIREBASE_ADMIN_PROJECT_ID / FIREBASE_ADMIN_CLIENT_EMAIL / FIREBASE_ADMIN_PRIVATE_KEYローカルで Firestore Emulator を使う場合は FIRESTORE_EMULATOR_HOST=127.0.0.1:8080 を設定すると、
認証情報なしで Emulator に接続します。
管理画面は Firebase Authentication のメールアドレス + パスワードログインを使います。ログイン後、Firestore の adminUsers/{uid} に有効な管理者ドキュメントが存在する場合のみ /admin 配下を閲覧できます。
adminUsers/{uid} の例:
email: "[email protected]"
displayName: "Owner"
role: "owner"
permissions: ["events:read", "events:write", "entries:read"]
isActive: true
role は owner | admin | staff を想定しています。
src/app/(public) 公開側画面
src/app/admin 管理画面
src/components/ui 共通UI
src/components/public 公開側コンポーネント
src/components/admin 管理画面コンポーネント
src/components/forms フォーム部品
src/features 業務機能単位
src/lib/firebase Firebase初期化
src/schemas Zodスキーマ
src/types TypeScript型
src/server Server Actions/API/Services
npm run dev
npm run build
npm run lint
npm run format
npm run format:check