🎲
01
Introduction

GameDay est une application web pour organiser des journées jeux de société. Elle permet de coordonner les propositions de jeux, les votes des participants, et de générer automatiquement un programme optimisé.

🗳 Proposer & voter
Chaque participant propose des jeux et vote pour ceux qu'il souhaite jouer. Un score Borda détermine les préférences collectives.
✨ Programme IA
L'IA génère un programme respectant les contraintes — teachers, répartition des joueurs, durées synchronisées.
📆 Doodle intégré
Sondez les disponibilités des participants avant de fixer la date, directement depuis l'application.
📚 Archive
Chaque séance passée est archivée avec les scores, photos et comptes rendus pour garder une trace.
👤
02
Créer un compte
1
Obtenez un lien d'invitation auprès d'un administrateur. Ce lien est unique et à usage unique.
2
Cliquez sur le lien et renseignez votre nom d'utilisateur et mot de passe. Vous pouvez optionnellement ajouter votre pseudo BoardGameGeek pour synchroniser votre collection.
3
Dans votre Profil, synchronisez votre collection BGG pour accéder rapidement à vos jeux lors des propositions.
💡 Si vous perdez votre mot de passe, contactez l'administrateur qui peut générer un lien de réinitialisation depuis la page Admin.
📅
03
Gérer les séances
Créer une séance

Depuis l'accueil, cliquez sur + Créer une nouvelle séance. Renseignez le nom et la date. Vous pouvez créer des catégories de jeux personnalisées (ex: "Jeux en groupes", "Jeux 3-4 joueurs").

🔒 Les séances privées ne sont visibles que par les membres invités. Seuls les admins peuvent créer des séances privées.
Rejoindre une séance

Cliquez sur une séance depuis l'accueil pour l'ouvrir. Cliquez sur Rejoindre la séance pour y participer. Votre nom apparaîtra dans la liste des participants.

Indicateurs sur l'accueil

Les cartes de séances affichent des bandeaux d'alerte :

🔵
Tu n'as pas encore voté — rappel pour voter dans cette séance
🔵
Vote incomplet — tu as voté dans certaines catégories mais pas toutes
🟠
Nouveaux jeux ajoutés — des jeux ont été proposés depuis ton dernier vote
🎮
04
Proposer des jeux
Depuis votre collection BGG

Dans l'onglet Proposer, dépliez Collections BGG et cliquez sur votre onglet. Vos jeux synchronisés apparaissent avec leurs infos (joueurs, durée, note BGG). Cliquez + Proposer pour ajouter un jeu.

Ajout manuel

Dépliez Ajout manuel. Vous pouvez coller une URL BoardGameGeek pour charger automatiquement les infos, ou saisir manuellement le nom, joueurs et durée.

Modifier une proposition

Cliquez sur ✏️ sur une fiche de jeu. Vous pouvez modifier toutes les infos, changer le teacher, définir une durée de teaching, et rafraîchir les données depuis BGG avec le bouton 🔄.

ChampDescription
TeacherPersonne qui enseigne le jeu. Par défaut : le proposant. Elle sera automatiquement placée à la table de ce jeu.
Durée teachingTemps d'explication des règles. S'ajoute à la durée du jeu dans les calculs de timing.
Note BGGNote moyenne BoardGameGeek. Affichée sur les fiches et dans les créneaux du programme.
🗳
05
Voter

Dans l'onglet Voter, classez les jeux par ordre de préférence pour chaque catégorie. Le jeu en position 1 est votre favori.

1
Glissez-déposez les jeux pour les réordonner. Sur mobile, appuyez et faites glisser.
2
Cliquez ✓ Valider mon classement pour enregistrer vos votes. Vous pouvez modifier en cliquant Modifier.
3
Consultez l'onglet Résultats pour voir les scores Borda collectifs en temps réel.
⚠️ Si l'organisateur verrouille les votes, vous ne pouvez plus modifier votre classement. Un bandeau 🔒 vous en informe.
📋
06
Créer le programme

L'onglet Programme permet de créer et éditer le planning de la journée manuellement ou via l'IA.

Édition manuelle
1
Cliquez + Créneau pour ajouter un nouveau créneau.
2
Cliquez sur pour éditer un créneau — renseignez l'heure, le jeu, les joueurs. Utilisez + Table B / C pour créer des tables parallèles.
3
Pour choisir un jeu, les onglets permettent de parcourir les 🗳 jeux votés, les collections des joueurs, ou de 🔍 rechercher sur BGG.
4
Glissez ⠿ les créneaux pour les réordonner. Les horaires se recalculent automatiquement.
Classements individuels

Cliquez sur 📊 Voir les classements individuels pour voir les préférences de chaque joueur — utile pour décider qui mettre à quelle table.

Publier le programme

Une fois satisfait, cliquez ✅ Valider & publier le programme. Une page publique accessible sans connexion est générée à l'URL /programme/ID.

07
Génération IA
Mode guidé

Renseignez les horaires, la pause déjeuner, le nombre de tables, et le nombre de créneaux tous ensemble vs en parallèle. L'IA génère un programme optimisé selon les votes.

💡 Le mode guidé utilise Claude Haiku (rapide, économique). Adapté pour les structures simples.
Mode libre

Décrivez librement le programme souhaité en langage naturel. Exemples :

✍️ "2 créneaux tous ensemble le matin, 2 créneaux de 2 tables l'après-midi. Ramses ne joue pas à White Castle."
💡 Le mode libre utilise Claude Sonnet (plus puissant). Privilégiez-le pour les contraintes complexes.
📐
08
Règles du programme

L'IA respecte ces règles dans l'ordre de priorité. Les règles P1 sont également garanties par le serveur après génération.

P1
Le teacher est dans les joueurs de sa table — il joue obligatoirement au jeu qu'il enseigne
P1
Un joueur ne peut être que sur une seule table par créneau
P1
Les joueurs jouent idéalement au jeu qu'ils ont le plus voté
P2
Respecter exactement le nombre de créneaux tous ensemble / en parallèle demandé
P2
Respecter les restrictions joueur/jeu mentionnées dans les instructions
P2
Respecter les contraintes min/max joueurs de chaque jeu
P2
Tous les participants jouent à chaque créneau — personne ne fait de pause involontaire
P2
Les tables en parallèle doivent avoir des durées synchronisées (tenant compte du nombre de joueurs)
P2
Répartition équitable — écart maximum de 1 joueur entre les tables parallèles
P3
Un même joueur ne devrait pas être teacher sur plus de 3 jeux dans la journée
📆
09
Sondage Doodle

La page Doodle permet de sonder les disponibilités des participants avant de fixer une date de séance.

1
Créez un sondage avec un titre et des dates proposées.
2
Partagez le lien via le bouton ↗. Les participants votent ✅ Disponible / 🤷 Peut-être / ❌ Non.
3
Cliquez ✅ Valider une date pour choisir la date finale. Une séance est automatiquement créée et les participants ✅ sont inscrits.
📚
10
Compte rendu

L'onglet Archive dans une séance permet d'enregistrer les souvenirs de la journée.

📷 Médias
Ajoutez des photos ou vidéos de la séance. Elles apparaissent dans la galerie de l'archive.
🏆 Scores
Enregistrez les scores de chaque partie jouée. Format libre : "Alice: 45, Bob: 38".
📝 Notes
Ajoutez des notes générales sur la séance — ambiance, moments forts, etc.
📊 Stats
Les jeux joués alimentent les statistiques globales du site (page Stats).
📊
11
Statistiques

La page Stats affiche des statistiques globales sur toutes les séances archivées — jeux les plus joués, participants les plus actifs, évolution dans le temps. Une version publique est accessible sans connexion.

⚙️
12
Administration
SectionDescription
🎨 ApparenceModifier les couleurs des thèmes sombre et clair indépendamment. Couleur du texte de navigation personnalisable.
🔐 DroitsConfigurer qui peut effectuer chaque action : tous les membres, créateur/proposant, ou admin uniquement.
🔗 InvitationsGénérer des liens d'invitation à usage unique pour créer de nouveaux comptes.
🔑 RécupérationURL de récupération du mot de passe admin via variable d'environnement ADMIN_RESET_TOKEN.
💾 SauvegardesBackup manuel ou automatique quotidien. 7 jours de rétention.
👥 Sélection joueursChoisir si le sélecteur de joueurs dans les créneaux affiche tous les membres ou seulement les inscrits.
🤖 SimulationActiver les boutons de simulation de votes pour tester (comptes Claudia, Claudine, Claudette, Claude François).
👤 UtilisateursVoir, modifier les droits, réinitialiser les mots de passe et supprimer des utilisateurs.
Niveaux de droits
✅ Tous les membres 🔑 Créateur / Proposant 👑 Admin uniquement

Le niveau Créateur/Proposant donne accès à l'action au créateur de la séance (pour les actions séances) ou au proposant du jeu (pour les actions jeux).