hacksu / hacksu/bingo

Admin review and standings still use a 5x5 card after card-size generalization

Open
#11 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Problem

The player card calculates `cardSize` from `effectivePoolSize(tiles)` and passes it to `shuffleTilesForUser` and `detectBingo`. The admin review page and `loadStandings` do not: both call the functions with their 5x5 defaults. The admin Svelte view also hard-codes `GRID_SIZE`.

## Reproduction

1. Configure at least 49 effective tiles, so the player card becomes 7x7.
2. Have a player complete a row on the displayed 7x7 card.
3. Open that player in `/admin/users/:id`, or view the leaderboard.

The player sees a bingo, but the admin and standings calculation only evaluates a 5x5 subset and can report no bingo, blocking verification. The leaderboard also advertises a 24-tile maximum even for larger cards.

## Suggested fix

Compute the effective pool size and card size once in each consumer (or centralize board-state construction), then pass that size through `shuffleTilesForUser`, `detectBingo`, and the admin grid and leaderboard maximum.

## Affected code

- `src/routes/admin/users/[id]/+page.server.ts`
- `src/routes/admin/users/[id]/+page.svelte`
- `src/lib/server/standings.ts`
- `src/routes/leaderboard/+page.server.ts`
- `src/routes/bingo/+page.server.ts` (the correct reference implementation)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with src/routes/bingo/+page.server.ts as the correct reference implementation, then compare how card size and effective pool size flow through the affected admin, standings, leaderboard, and Svelte files. Done means admin review and standings detect bingo on larger cards, the admin grid uses the displayed size, and the leaderboard maximum reflects that size.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
full-stack
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.