CoOp:Anything
게임을 검색해 협동 플레이 가능한 모드·단계·품질·커뮤니티 평점을 확인합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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 :