Skip to content

FR: Seasonal Rep Race #221

@samhwang

Description

@samhwang

Is your feature request related to a problem? Please describe.

Since the leaderboard only shows the top 10 of the server every time, it makes it a bit frustrating for some people to get rep, and not show up on the leaderboard whatsoever. This will introduce a "seasonal" rep score that resets every quarter.

image

Describe the solution you'd like

These requirements can be splitted off and deal with in separate PRs. No need to do it all in one.

  • The leaderboard will show a tagline like LEADERBOARD Q1 2024.
    • For this to work, the parseDate utils will also need to parse the current time to find out which quarter of the year it's in.
  • Make a cron job that runs every 3 months to set user existing in the db to 0 rep.
    • ReputationLog will also need to record these operations.
    • cron expression: 0 0 1 1,4,7,9 * - verified with https://crontab.guru

Describe alternatives you've considered

I have considered introducing a "decay" mechanic to the rep, but this is simpler to implement than actual decaying, with more background process and logic on how to decay the rep.

Additional context

  • Admins can also then use this to reward the user with the highest rep?
  • We can also change this into an exp system, whether commenting/posting guarantees 1 XP, but being thanked is given 10rep? But this is out of the scope of this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions