OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
파워플레이에 등록된 아이스하키 동호회 목록
Translation pending
Sports & fitnessGitHub @asialeagueicehockeyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
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 ↗AGENTS.md..agent/skills/codex-bootstrap/SKILL.md.AGENTS.md, .agent, and the current src/ + sql/ tree.Global Standard Ice Hockey Match Management Platform
"No more copy-pasting. Manage your roster, payments, and team balance with a single link."
아이스하키 동호회 경기 운영 & 게스트 매칭 관리 플랫폼
Power Play는 **다국어(KR/EN)**를 완벽 지원하는 웹 플랫폼으로, 링크 하나로 경기 생성부터 신청, 입금 확인, 팀 밸런싱, 공지 공유까지 해결합니다.
| Category | Tech | Details |
|---|---|---|
| Framework | Next.js 14+ | App Router, Server Actions |
| Language | TypeScript | Strict typing for reliability |
| Styling | Tailwind CSS | + Shadcn/ui (Radix UI) |
| i18n | next-intl | Server & Client side translation (KR/EN) |
| Database | Supabase | PostgreSQL |
| Auth | Supabase Auth | Email/Password (MVP), OAuth planned |
| Logic | Edge Functions | Notification triggers, Scheduling |
| SEO | Open Graph | Dynamic OG Image for KakaoTalk Previews |
| Deploy | Vercel | CI/CD Integration |
[KR/EN] 토글로 즉시 언어 전환.1월 8일 ↔ Jan 8th).FW/DF/G), 레벨 설정.Unpaid → Paid 상태 변경.Copy for Kakao: 한국어 위주의 깔끔한 텍스트 공지 생성.Copy for Global: 외국인 멤버를 위한 영/한 병기 공지 생성.We will build this as a Single Next.js Application (Monorepo approach not needed).
The project uses Next.js Route Groups to handle different layouts within a single repo.
app/
├── (public)/ # Public Layout Group
│ ├── layout.tsx # GNB (Logo, Login, Lang Toggle)
│ ├── page.tsx # Main: Match List
│ └── match/[id]/ # Match Detail (Hybrid Admin Controls here)
│
├── (admin)/ # Admin Layout Group
│ ├── admin/ # URL base: /admin
│ │ ├── layout.tsx # Admin Sidebar Layout
│ │ ├── dashboard/ # Statistics
│ │ └── matches/ # Manage All Matches (Table View)
│
├── layout.tsx # Root Layout (Providers, Fonts)
└── middleware.ts # Role-based Protection
### 🔐 Security & Access Rules
1. Middleware Protection:
- Check user's role via Supabase Auth.
- If user.role !== 'admin' tries to access /admin/*, redirect to home (/).
2. Hybrid UI Control:
- Inside match/[id], implement Conditional Rendering.
- If user.role === 'admin', render specific admin buttons ("Edit Match", "Copy Text").
--
## 5. Database Schema (Supabase Draft)
profiles (Users)
Column Type Description id UUID (PK) Supabase Auth User ID email Text User Email full_name Text Display Name (Global friendly) position Enum 'FW', 'DF', 'G' preferred_lang Enum 'ko', 'en' (For Notifications) role Enum 'user', 'admin'
matches (Games)
Column Type Description id UUID (PK) rink_id UUID (FK) Reference to rinks start_time Timestamp Game Start Time fee Integer Cost per person max_fw Integer Max Forwards max_df Integer Max Defenders max_g Integer Max Goalies status Enum 'open', 'closed', 'canceled' description Text Host's notice
participants (Roster)
Column Type Description id UUID (PK) match_id UUID (FK) user_id UUID (FK) position Enum Applied Position (FW/DF/G) status Enum 'applied', 'confirmed', 'waiting', 'canceled' payment_status Boolean true if paid team_color Enum 'Black', 'White', null
rinks (Venues)
Column Type Description id UUID (PK) name_ko Text e.g. "제니스 아이스링크" name_en Text e.g. "Zenith Ice Rink" map_url Text Naver/Google Map Link
### 6. Development Roadmap
#### 1: Foundation
- Project Init (Next.js + next-intl + Shadcn).
- Supabase Setup (Schema Apply & Auth Integration).
#### 2: Core Logic
- User Auth & Profile Implementation.
- Match List & Detail UI (with i18n support).
#### 3: Interaction & Admin
- Join Logic (Position Check & Capacity Limit).
- Admin Dashboard & "Smart Share" Text Generator.
#### 4: Polish & Deploy
- SEO & Dynamic OG Image (Open Graph).
- Final QA & Vercel Deployment.