尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Application Next.js 15 pour gérer vos decks de cartes et jouer en multijoueur avec authentification et stockage cloud.
Couleurs SuperTilt :
git clone <votre-repo>
cd playdeck
npm install
Schéma de base (ÉTAPE 1) :
supabase/schema.sqldecks et cardscard-imagesSchéma de jeu multijoueur (ÉTAPE 2) :
supabase/game-schema.sqlgames, game_players, et game_cardsgenerate_game_code() et distribute_cards()card-images a été créé.env.local.example :cp .env.local.example .env.local
.env.local et ajoutez vos informations Supabase :NEXT_PUBLIC_SUPABASE_URL=votre-url-supabase
NEXT_PUBLIC_SUPABASE_ANON_KEY=votre-cle-anon-supabase
Vous pouvez trouver ces informations dans :
npm run dev
Ouvrez http://localhost:3000 dans votre navigateur.
playdeck/
├── app/
│ ├── decks/ # Pages de gestion des decks
│ │ ├── [id]/ # Page détail d'un deck
│ │ │ ├── actions.ts # Actions serveur pour les cartes
│ │ │ └── page.tsx # Page détail du deck
│ │ ├── actions.ts # Actions serveur pour les decks
│ │ └── page.tsx # Liste des decks
│ ├── games/ # Pages de jeu multijoueur
│ │ ├── [id]/ # Pages d'une partie
│ │ │ ├── lobby/ # Salle d'attente
│ │ │ ├── actions.ts # Actions de jeu (piocher, jouer, etc.)
│ │ │ └── page.tsx # Plateau de jeu
│ │ ├── create/ # Création de partie
│ │ ├── join/ # Rejoindre une partie
│ │ └── actions.ts # Actions de gestion des parties
│ ├── login/ # Page de connexion
│ │ └── page.tsx
│ ├── globals.css # Styles globaux + variables Tailwind
│ ├── layout.tsx # Layout principal
│ └── page.tsx # Page d'accueil (redirige vers /decks)
├── components/
│ ├── ui/ # Composants UI Shadcn
│ ├── card-grid.tsx # Grille d'affichage des cartes
│ ├── card-image.tsx # Affichage d'image avec gestion d'erreur
│ ├── card-upload.tsx # Composant d'upload multiple de cartes
│ ├── create-deck-dialog.tsx # Dialog de création de deck
│ ├── create-game-form.tsx # Formulaire de création de partie
│ ├── deck-card.tsx # Carte d'affichage d'un deck
│ ├── game-board.tsx # Plateau de jeu avec Realtime
│ ├── game-lobby.tsx # Lobby avec liste des joueurs Realtime
│ └── join-game-form.tsx # Formulaire pour rejoindre une partie
├── lib/
│ ├── supabase/
│ │ ├── client.ts # Client Supabase côté navigateur
│ │ └── server.ts # Client Supabase côté serveur
│ └── utils.ts # Utilitaires (cn)
├── types/
│ └── database.types.ts # Types TypeScript pour la BDD (avec tables de jeu)
├── supabase/
│ ├── schema.sql # Schéma de base (decks/cards)
│ └── game-schema.sql # Schéma du jeu multijoueur
└── proxy.ts # Proxy d'authentification (Next.js 15)
decks
id (UUID, PK)user_id (UUID, FK vers auth.users)name (TEXT)description (TEXT, nullable)created_at (TIMESTAMP)cards
id (UUID, PK)deck_id (UUID, FK vers decks)image_url (TEXT)position (INTEGER)created_at (TIMESTAMP)games
id (UUID, PK)host_id (UUID, FK vers auth.users)deck_id (UUID, FK vers decks)code (TEXT, unique) - Code à 6 caractèresstatus (TEXT) - 'waiting', 'playing', 'finished'max_players (INTEGER) - 2 à 6current_turn_player_id (UUID, nullable)created_at, started_at, finished_at (TIMESTAMP)game_players
id (UUID, PK)game_id (UUID, FK vers games)user_id (UUID, FK vers auth.users)player_order (INTEGER) - Ordre de jeuis_host (BOOLEAN)joined_at (TIMESTAMP)game_cards
id (UUID, PK)game_id (UUID, FK vers games)card_id (UUID, FK vers cards)location (TEXT) - 'deck', 'hand', 'discard'owner_user_id (UUID, nullable, FK vers auth.users)position (INTEGER)created_at (TIMESTAMP)Dans la salle d'attente :
Pendant la partie :
# Développement
npm run dev
# Build production
npm run build
# Démarrer en production
npm start
# Linter
npm run lint
🔧 Problèmes d'affichage des images, d'upload ou d'authentification ?
Consultez le Guide de Dépannage Complet qui couvre :