38 Commits

Author SHA1 Message Date
Zed c0ad5a08a4 CI : le registre pointe vers gitea.ton618.ovh
Build and Publish Docker Image / build-and-push-image (push) Successful in 2m7s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-14 17:15:56 +02:00
Zed 8ea0c5f676 Ajoute les jeux "6 qui prend !" et "Moustache"
Build and Publish Docker Image / build-and-push-image (push) Failing after 42s
- 6 qui prend ! : 2-10 joueurs, score négatif, fin dès qu'un joueur
  atteint 66 points, simple addition
- Moustache : 3-6 joueurs, le plus de points gagne

Moustache introduit une nouvelle mécanique dans le moteur : les équipes
étant retirées au sort à chaque manche, on note seulement l'équipe
gagnante des 4 premières manches (GameConfig.teams + teamRounds,
Round.winningTeamId), puis la dernière manche sert au décompte final des
points de chaque joueur.

- PlayGame : sélecteur d'équipe (pas de saisie de score), validation
  bloquée sans choix, compteur de manches gagnées par équipe
- GameOver : les manches d'équipe s'affichent avec un badge coloré au
  lieu d'une rangée de zéros

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-14 16:24:14 +02:00
Zed 0a963d991b Ajoute le tirage au sort d'un jeu par vote
Build and Publish Docker Image / build-and-push-image (push) Successful in 58s
Nouvelle page /tirage, accessible depuis "Mes jeux" :
- on saisit le nombre de joueurs (jeux filtrés selon ce nombre)
- chaque joueur vote pour un jeu, à tour de rôle
- plus de 50% des voix : le jeu est élu à la majorité
- sinon : tirage au sort parmi les jeux votés
- révélation animée (défilement qui ralentit + confettis), détail des
  votes, puis "Lancer" enchaîne sur la création de partie

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 18:25:39 +02:00
Zed 16ad86c019 Fix: les PDF de règles ne se chargeaient plus dans la PWA
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m45s
Ouvrir un PDF est une navigation : le repli SPA du service worker
(navigateFallback) répondait index.html à la place du fichier. Les assets
de jeux sont désormais exclus du repli.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 12:06:19 +02:00
Zed 68e0f0b90b Corrige les joueurs en double dans les statistiques
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m43s
Un nom saisi à la main recevait un nouvel id même si le joueur existait
déjà : la même personne apparaissait plusieurs fois dans le classement,
chaque ligne avec une seule partie.

- NewGame : réutilise l'id (et l'avatar) du joueur existant quand le nom
  correspond, sauf si deux joueurs homonymes sont dans la même partie
- Stats : classement agrégé par personne (nom normalisé) et non par id,
  y compris parties, victoires et compteurs Cabo ; les filtres par joueur
  suivent la même logique pour retrouver les anciennes parties

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 11:50:06 +02:00
Zed 13cab31382 Animation de victoire uniquement à la fin de la partie
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m43s
L'overlay de célébration (confettis + avatar du vainqueur) se rejouait à
chaque consultation d'une partie terminée. Il n'est désormais déclenché
que lorsqu'on arrive depuis la fin de partie (état de navigation
justFinished), état consommé ensuite pour qu'un rechargement ne le rejoue
pas. Depuis l'historique ou l'accueil, l'écran de fin s'affiche sans
célébration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-01 11:29:05 +02:00
Zed 2ad3ce6f13 Suppression de parties et de joueurs, répercutée dans les stats
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m26s
- Historique : bouton de suppression sur chaque partie (soft-delete), elle
  disparaît de l'historique, de l'accueil et des statistiques
- Joueurs : la suppression propose aussi de supprimer ses parties, et le
  joueur supprimé est désormais exclu du classement et des records
- Correspondance par id ou par nom (un joueur saisi à la main reçoit un id
  différent de celui du roster), sans masquer un joueur actif homonyme
- SessionCard : carte convertie en div cliquable pour héberger le bouton

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-31 18:51:37 +02:00
Zed 0616866108 Stats : records (meilleur score par jeu, selon le sens du jeu)
Build and Publish Docker Image / build-and-push-image (push) Successful in 58s
Nouvelle section "Meilleurs scores" : par jeu, le meilleur score en une
partie et le joueur qui l'a réalisé — le plus haut pour les jeux positifs,
le plus bas pour les jeux négatifs (Skyjo, Cabo, Odin). Respecte les filtres.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-31 00:28:52 +02:00
Zed ab39a8e922 Ajoute le jeu Chouineurs
Build and Publish Docker Image / build-and-push-image (push) Successful in 55s
Jeu natif : 3-5 joueurs, score positif, 4 manches, simple addition.
Assets (logo/bannière/règles PDF) + couleur de marque violette. Id réservé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-30 19:37:14 +02:00
Zed 0debfa0c36 CI : tags de version sur les images Docker
Build and Publish Docker Image / build-and-push-image (push) Successful in 48s
En plus de :latest, chaque image (frontend + backend) est taguée :
- <version> (semver de package.json, ex. 1.0.0)
- <version>-<build> (numéro de run Gitea, unique/incrémental)
- <sha court> (commit exact)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 18:30:14 +02:00
Zed 9352bb08d9 Import de jeu : catégories conditionnelles (mode alternatif)
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m2s
- ScoringCategory.requiresOption : une catégorie n'apparaît/compte que si
  l'option booléenne correspondante est activée (mode/extension déclaratif)
- toGameConfig génère getScoringCategories filtrant selon les options
- Gabarit harmonies-esprits.json : mode "Esprits de la nature" activable
  ajoutant la catégorie "Animaux spirituels" au décompte
- Doc à jour

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 18:12:54 +02:00
Zed dacb5b49cb Retire l'option plein écran (display_override)
Build and Publish Docker Image / build-and-push-image (push) Successful in 12s
Annule display_override ["fullscreen","standalone"] : retour au mode
standalone (barres système fondues via theme-color).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 22:31:00 +02:00
Zed 4e5d1f5921 PWA : vrai plein écran sur Android (display_override fullscreen)
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m1s
Ajoute display_override ["fullscreen","standalone"] au manifeste : mode
plein écran (barre de statut masquée) sur Android où c'est supporté, repli
standalone ailleurs (iOS). Réinstaller la PWA pour appliquer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 22:14:56 +02:00
Zed 74351b24d2 PWA edge-to-edge : theme-color accordé au fond selon le thème
Build and Publish Docker Image / build-and-push-image (push) Successful in 59s
Les barres système (statut/navigation) affichaient des bandes ne
correspondant pas au fond de l'app. La meta theme-color est désormais
mise à jour dynamiquement selon le thème (navy en sombre, clair en clair),
et le manifeste + index.html passent en navy. Les barres se fondent avec
l'app (rendu edge-to-edge).

Note : réinstaller la PWA pour appliquer le nouveau manifeste.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 22:06:49 +02:00
Zed 5399218121 Fix: barre de boutons du résumé au-dessus de la colonne figée
Build and Publish Docker Image / build-and-push-image (push) Successful in 58s
Le détail des manches a une colonne "Manche" sticky (z-10) qui passait
au-dessus de la barre de boutons fixe au scroll. La barre reçoit z-50.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 21:56:16 +02:00
Zed c96a1627ec Navigation par barre du bas + gabarits de jeux natifs
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m0s
Navigation :
- Suppression du menu hamburger, remplacé par le logo de l'app dans l'en-tête
- Barre du bas à 5 onglets : Accueil, Mes jeux, Parties, Stats, Joueurs
- Menu profil sur l'avatar (haut-droite) : profil/switch, Emplacements,
  Jeux importés, Paramètres
- Nouvelle page "Mes jeux" (/jeux) : bibliothèque de tous les jeux

Format d'import enrichi + gabarits :
- Champ icon (lucide) au niveau du jeu, et icon/color sur les catégories
- Gabarits JSON des 5 jeux natifs dans public/game-templates/ (référence,
  au format d'import) + doc à jour

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 21:33:19 +02:00
Zed 90fba52a92 Résumé de partie : détail des manches + icônes de catégories
Build and Publish Docker Image / build-and-push-image (push) Successful in 59s
- GameOver : nouvelle section "Détail des manches" (tableau manches × joueurs
  avec ligne Total) pour les parties multi-manches ; indicateurs Cabo/Kamikaze
- ScoringCategory : champs icon (lucide) + color pour un visuel par catégorie
- Harmonies : icônes + couleurs de terrain (arbres, montagnes, champs,
  bâtiments, rivière, animaux, esprits) affichées dans PlayGame et GameOver

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 20:56:45 +02:00
Zed c69a5195f5 Harmonies : règle "Esprits de la nature" + logo vectorisé
Build and Publish Docker Image / build-and-push-image (push) Successful in 12s
- Harmonies : nouvelle option activable "Extension : Esprits de la nature" qui
  ajoute une catégorie de score en fin de partie (incluse dans le total)
- GameConfig.getScoringCategories(options) : catégories dépendantes des options
  (PlayGame et GameOver utilisent les catégories effectives)
- Nouveau logo vectorisé public/logo.svg + favicon SVG dans index.html

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 16:05:15 +02:00
Zed 1f400b78cb Refonte UI : DA Strava + Kurzgesagt
Build and Publish Docker Image / build-and-push-image (push) Successful in 59s
- Nouveau logo planète flat (PlanetMark) + icônes PWA régénérées + splash navy cosmique
- Tokens de thème unifiés : accent teal de marque, rayons plus doux, dark mode cosmique (surfaces élevées)
- Fond CosmicBackground raffiné (halos aurora teal/indigo)
- Navigation par barre d'onglets en bas (BottomNav) ; menu ☰ réduit au secondaire
- Composants partagés PageHeader + SessionCard
- Accueil = dashboard : tuiles de stats + démarrage rapide + feed d'activité
- Stats : classement en barres horizontales (teinte unique, méthode dataviz)
- Restyle de tous les écrans liste + boucle de jeu immersive conservée
- Doc du format de création de jeu (docs/creation-jeu.md)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 11:42:15 +02:00
Zed bb07d7ef30 import game option
Build and Publish Docker Image / build-and-push-image (push) Successful in 58s
2026-07-11 02:37:40 +02:00
Zed 9a63240113 docker test
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m9s
2026-07-11 02:24:08 +02:00
Zed ce1db937f2 rework pwa cc
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m48s
2026-07-11 02:01:08 +02:00
Zed 9ae37f98ed pwa update
Build and Publish Docker Image / build-and-push-image (push) Successful in 55s
2026-07-10 15:25:35 +02:00
Zed 722b98c74c Change avatar background color
Build and Publish Docker Image / build-and-push-image (push) Successful in 49s
2026-07-07 15:37:08 +02:00
Zed 574e0c8004 Add Import/Restore functionality for JSON backups
Build and Publish Docker Image / build-and-push-image (push) Successful in 49s
2026-07-07 15:19:28 +02:00
Zed a2dba84fb0 Rename application to Skori
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m13s
2026-07-07 15:00:18 +02:00
Zed a663fce7f5 Remove duplicate games-assets folder
Build and Publish Docker Image / build-and-push-image (push) Successful in 45s
2026-07-06 20:50:39 +02:00
Zed da2c61b928 Add WebP images for game logos and banners
Build and Publish Docker Image / build-and-push-image (push) Successful in 49s
2026-07-06 19:58:10 +02:00
Zed fb998535f8 Convert image name to lowercase to fix Docker invalid tag error
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m18s
2026-07-06 19:24:42 +02:00
Zed 92270fb17a Use manual DOCKER_TOKEN secret for registry login
Build and Publish Docker Image / build-and-push-image (push) Failing after 7s
2026-07-06 19:21:49 +02:00
Zed e2fa88e10e Fix unauthorized error by using GITHUB_TOKEN instead of GITEA_TOKEN
Build and Publish Docker Image / build-and-push-image (push) Failing after 7s
2026-07-06 19:17:38 +02:00
Zed 253f83b08b Simplify Gitea workflow to use native docker cli instead of buildx
Build and Publish Docker Image / build-and-push-image (push) Failing after 7s
2026-07-06 19:13:49 +02:00
Zed 3a8ee28bdd Remove QEMU step to simplify workflow
Build and Publish Docker Image / build-and-push-image (push) Failing after 34s
2026-07-06 19:09:05 +02:00
Zed af7ff30537 Update workflow to support insecure HTTP registry
Build and Publish Docker Image / build-and-push-image (push) Has been cancelled
2026-07-06 18:58:11 +02:00
Zed 5e8f67ee23 Update gitea action workflow
Build and Publish Docker Image / build-and-push-image (push) Failing after 30s
2026-07-06 18:51:39 +02:00
Zed 14a5a5198b Add Gitea Action workflow to build and publish Docker image
Build and Publish Docker Image / build-and-push-image (push) Failing after 6m13s
2026-07-06 18:41:27 +02:00
Zed f5518b992e Add Docker and Nginx configuration for production deployment 2026-07-06 16:17:34 +02:00
Zed bf67c58171 Initial commit
Create the Board Score PWA with offline support, Kurzgesagt-style themes, multiple game configs, dynamic players, avatars via DiceBear, and complete statistics.
2026-07-06 16:12:25 +02:00