Runtime
Node.js v18 ou supérieur · npm
SystĂšme
AccÚs en écriture pour la DB SQLite · Persistance des données entre redémarrages
Réseau sortant
boardgamegeek.com (API BGG) · api.anthropic.com (IA, optionnel) · Serveur SMTP (email, optionnel)
Hébergement compatible
VPS · Serveur dĂ©diĂ© · Docker â
â Vercel/Netlify â (serverless incompatible)
đĄ
Minimum recommandĂ© : 256 MB RAM. Pas besoin de MySQL, Redis ou autre base externe â GameDay utilise SQLite.
Avec Docker (recommandé)
1
Copiez le dossier du projet sur votre serveur.
2
Copiez .env.example en .env et remplissez les valeurs (voir Configuration).
3
Lancez : docker compose up -d
4
L'application est accessible sur le port 3000 (ou celui configuré).
Sans Docker
1
Installez les dépendances : npm install
2
Copiez .env.example en .env et configurez.
3
Démarrez : node server.js (ou via PM2 pour la production)
Toutes les variables se configurent dans le fichier .env Ă la racine du projet.
| Variable | Description | Requis |
| SESSION_SECRET | ClĂ© secrĂšte pour les sessions â changez cette valeur ! | â
Oui |
| ADMIN_RESET_TOKEN | Token pour récupérer l'accÚs admin en cas de perte de mot de passe | Non |
| ANTHROPIC_API_KEY | Clé API Anthropic pour la génération IA du programme | Version IA |
| SMTP_HOST | Serveur SMTP pour les emails (ex: mail.infomaniak.com) | Non |
| SMTP_PORT | Port SMTP (ex: 587) | Non |
| SMTP_USER | Adresse email d'envoi | Non |
| SMTP_PASS | Mot de passe SMTP | Non |
| SMTP_FROM | Adresse d'expéditeur affichée | Non |
| APP_URL | URL publique du site (ex: https://monsite.ch) | Non |
| PORT | Port du serveur (défaut: 3000) | Non |
| DB_PATH | Chemin vers la base de données SQLite | Non |
GameDay utilise l'API Anthropic (Claude) pour deux fonctionnalitĂ©s : la gĂ©nĂ©ration automatique du programme et l'estimation des durĂ©es. Ces fonctionnalitĂ©s sont optionnelles â le site fonctionne entiĂšrement sans.
Fonctions utilisant l'IA
⚠Génération du programme
GénÚre automatiquement un programme de journée optimisé selon les votes, les contraintes de joueurs et les teachers. Utilise Claude Sonnet (mode libre) ou Claude Haiku (mode guidé).
ⱠEstimation des durées
Estime automatiquement la durée d'un créneau en fonction du jeu, du nombre de joueurs et du teaching. Utilise Claude Haiku pour rester économique.
âš
L'IA génÚre un programme en JSON structuré, puis le serveur vérifie et corrige automatiquement les violations de rÚgles (teacher absent de sa table, joueur sur deux tables, etc.) avec jusqu'à 2 itérations de correction.
Obtenir une clé API Anthropic
1
Créez un compte sur console.anthropic.com
2
Dans Settings â API Keys, crĂ©ez une nouvelle clĂ©
3
Ajoutez-la dans votre .env : ANTHROPIC_API_KEY=sk-ant-...
4
RedĂ©marrez l'application â le bouton "GĂ©nĂ©rer avec l'IA" apparaĂźt dans l'onglet Programme
đž
L'usage de l'API Anthropic est payant. Une génération de programme coûte typiquement moins de 0.01 CHF en mode guidé (Haiku) et ~0.05 CHF en mode libre (Sonnet).
1
Obtenez un lien d'invitation auprĂšs d'un administrateur. Ce lien est unique et Ă usage unique.
2
Renseignez votre pseudo et mot de passe. Optionnellement : votre pseudo BoardGameGeek.
3
Dans votre Profil, synchronisez votre collection BGG pour accéder à vos jeux lors des propositions.
đ§
Si le reset par email est activĂ© par l'admin, renseignez votre adresse email dans votre profil pour pouvoir rĂ©initialiser votre mot de passe vous-mĂȘme.
Depuis l'accueil, cliquez + Créer une nouvelle séance. Renseignez le nom, la date et créez des catégories de jeux. Les admins peuvent créer des séances privées visibles uniquement par les membres invités.
Les cartes de sĂ©ances affichent des bandeaux d'alerte : đ” vote manquant ou incomplet · đ nouveaux jeux proposĂ©s depuis votre dernier vote.
L'admin et le créateur de séance peuvent retirer un participant en cliquant le à à droite de son nom dans la barre des participants.
Dans l'onglet Proposer : depuis votre collection BGG synchronisĂ©e, ou en ajout manuel via URL BoardGameGeek. Cliquez âïž pour modifier une proposition, changer le teacher, dĂ©finir la durĂ©e de teaching, ou rafraĂźchir les donnĂ©es BGG avec đ.
Le bouton â Enrichir BGG (admin uniquement) met Ă jour les notes et weights BGG de tous les jeux proposĂ©s dans la sĂ©ance.
Classez les jeux par ordre de prĂ©fĂ©rence par catĂ©gorie via glisser-dĂ©poser. Validez avec â Valider mon classement. Les scores Borda sont visibles en temps rĂ©el dans l'onglet RĂ©sultats. L'organisateur peut verrouiller les votes (đ).
1
Cliquez + Créneau pour ajouter un créneau.
2
Cliquez âž pour Ă©diter â choisissez le jeu depuis les jeux votĂ©s, les collections, ou BGG. Ajoutez des tables B/C pour les crĂ©neaux parallĂšles.
3
Glissez â ż pour rĂ©ordonner â les horaires se recalculent automatiquement depuis l'heure de dĂ©but.
4
Cliquez đ Voir les classements individuels pour voir les prĂ©fĂ©rences de chaque joueur pendant l'Ă©dition.
5
Publiez avec â
Valider & publier â une page publique est gĂ©nĂ©rĂ©e Ă /programme/ID.
âš
Cette fonctionnalité nécessite une clé ANTHROPIC_API_KEY dans la configuration. Elle est absente de la version "sans IA".
Mode guidĂ© â Claude Haiku
Renseignez les horaires, la pause déjeuner, le nombre de tables maximum et le nombre de créneaux tous ensemble vs en parallÚle. L'IA génÚre un programme structuré rapidement et à moindre coût.
Mode libre â Claude Sonnet
Décrivez librement le programme en langage naturel. Plus puissant pour les contraintes complexes.
âïž
"2 créneaux tous ensemble le matin, 2 créneaux de 2 tables l'aprÚs-midi. Ramses ne joue pas à White Castle."
Processus de génération
1
PrĂ©-calcul â le serveur calcule les contraintes (temps disponible, rĂ©partition idĂ©ale, teachers) et les injecte dans le prompt.
2
GĂ©nĂ©ration â Claude produit un programme JSON structurĂ© respectant les rĂšgles.
3
VĂ©rification â le serveur vĂ©rifie les rĂšgles P1/P2. Si violations dĂ©tectĂ©es, Claude reçoit les erreurs et corrige (max 2 itĂ©rations).
4
Post-traitement â le serveur injecte les teachers manquants, redistribue Ă©quitablement les joueurs et filtre les crĂ©neaux invalides.
P1
Le teacher est dans les joueurs de sa table â garanti par le serveur
P1
Un joueur ne peut ĂȘtre que sur une seule table par crĂ©neau â garanti par le serveur
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 contraintes min/max joueurs de chaque jeu
P2
Tous les participants jouent à chaque créneau
P2
Tables parallÚles avec durées synchronisées et écart max 1 joueur
P3
Un joueur ne devrait pas ĂȘtre teacher sur plus de 3 jeux dans la journĂ©e
Sondez les disponibilitĂ©s avant de fixer une date. CrĂ©ez un sondage, partagez le lien, puis validez la date finale â une sĂ©ance est automatiquement créée et les participants disponibles sont inscrits.
đ· MĂ©dias
Photos et vidéos de la séance.
đ Scores
Scores de chaque partie jouée.
đ Notes
Notes générales sur la séance.
đ Stats
Alimentent les statistiques globales du site.
| Section | Description |
| đš Apparence | ThĂšme sombre/clair, couleurs, polices, mise en page â persistĂ©s pour tous les utilisateurs. |
| đ Droits | Qui peut effectuer chaque action : tous / crĂ©ateur / admin. |
| đ§ Email | Activer le reset de mot de passe par email. NĂ©cessite configuration SMTP dans .env. |
| đ Invitations | GĂ©nĂ©rer des liens d'invitation Ă usage unique. |
| đ RĂ©cupĂ©ration | URL de rĂ©cupĂ©ration du mot de passe admin via ADMIN_RESET_TOKEN. |
| đŸ Sauvegardes | Backup manuel ou automatique quotidien, 7 jours de rĂ©tention. |
| đ„ SĂ©lection joueurs | SĂ©lecteur de joueurs dans les crĂ©neaux : tous les membres ou inscrits Ă la sĂ©ance. |
| đ€ Simulation | Boutons de simulation de votes pour tester (Claudia, Claudine, Claudette, Claude François). |
| đ€ Utilisateurs | GĂ©rer les comptes, droits, mots de passe. |