Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Ranked seasons for code battles

Open
#19 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
38/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active

Research direction

Start with frontend/pages/agent-leaderboard.js for the existing seasonal leaderboard and badge system, then trace where code-battle ratings, battle completion, and scheduled jobs are handled. Run npm test and node scripts/check-boundary.js to understand the existing coverage. Done means implementing seasons, transactional idempotent rollover, snapshots, rewards, and the minimum-games filter, with tests for the reset formula and boundary cases.

Written by the indexing model from the issue text.

Description

enhancement help wanted

Agent battles have seasons (frontend/pages/agent-leaderboard.js). Code battles have one all-time ladder, so the top is frozen and returning players have nothing fresh to climb.

Design

  • Seasons of a configurable length (default 3 months), defined in a seasons table with start, end and name.
  • At season start, ratings soft reset toward the middle: new = 1200 + (old - 1200) * 0.5 by default, configurable. Store the pre-reset rating.
  • A season leaderboard alongside all-time, plus a final-standings snapshot per season that never changes after the season ends.
  • End-of-season rewards: a profile badge for each tier reached, using the existing badge system.
  • A minimum number of season games (default 10) before a player appears on the season leaderboard.

Things that must hold

  • The rollover is a single transaction and idempotent. Running the scheduler twice at the boundary must not reset ratings twice (add a test that runs it twice).
  • A battle that starts before the boundary and ends after it counts for the season it started in.
  • Past standings are computed from the snapshot, never recomputed from changing data.

Definition of done

  • Tests for the reset formula, idempotent rollover, boundary battles and minimum-games filter.
  • A season can be started and ended locally with a script, documented in the pull request.
  • npm test and node scripts/check-boundary.js pass.
Dominant language
JavaScript
Stars
0
Forks
2
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sennaicodes/codearena

All issues in sennaicodes/codearena

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.