Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENHANCEMENT] Research and Propose more Complex Reputation System #42

Closed
2 tasks done
SethCram opened this issue Mar 28, 2023 · 0 comments
Closed
2 tasks done

[ENHANCEMENT] Research and Propose more Complex Reputation System #42

SethCram opened this issue Mar 28, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@SethCram
Copy link
Owner

SethCram commented Mar 28, 2023

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

  • Yes, the current reputation system is rather simplistic

Describe the solution you'd like

  • Research and Implement more Complex Reputation System

Additional context

Development

  • find/create some feasibly complex reputation systems/eqts

    • StackOverflow related research:
    • papers provided by Dr Jamil:
      • paper2.pdf seems the most useful
        • mentions rating consistency in-line with the majority as part of user's reputation score
          • doesn't work as-is for Book Club rn bc users can already see posts + comments reputations
        • determine user consistency thru:
          • hiding post + comment + user reputation badge and scores
          • telling user to cast enough fresh votes to earn a consistency score
            • and the privilege to view rep badges + scores again
          • scoreable vote = vote cast on a post/comment w/ rep != 0
            • each scoreable vote takes up 10% of user's consistency score
            • each vote is given 0-10% based on if post/comment:
              • scored >= 500, 10%
              • scored >= 100, 8%
              • score >= 50, 6%
              • score >= 10, 4%
              • score >= 1, 2%
              • score isn't in the same direction as the vote cast, 0%
        • can display consistency score as separate modifier on user sidebar
          • could be a three part color bar of red if < 33%, yellow if 33% < consistency score < 66%, or green if > 66%
          • would be filled dependent on what percentage display
          • would display the percentage too
          • tooltip would tell of its issue date and that it was the consistency score
        • every act created with isTesting: true so cant see rep scores or badges anymore
          • would have to dissallow guests this privilege too if want it more fool proof
          • if isTesting, sidebar displays a tip to vote enough to see post+comment+user scorings and get a consistency score
        • everytime isTesting is set back to false, a random interval would be generated tween 7-14 days of elapsed time
          • w/ user logs in, would check if consistency interval has run out since the consistency score issue time
            • if so, isTesting set true and not falsified till enough scoreable posts voted on
            • if so, consistency score would be wiped and set to 0
          • once enough votes given, isTesting = false, new randomized grace period given, and consistency score timestamp would be updated
        • could enable and disable consistency scoring at will via user settings page
          • should be checkbox and have tooltip telling of what it is via a question mark
        • so, each vote while isTesting = true should update user model w/ new consistency score and number of test vote
          • once test vote count reaches interval of 10, isTesting = false and
        • so, consistency score setup would require fields:
          • useConsistencyScoring
          • isTesting
          • consistencyScore
          • consistencyGracePeriod
          • consistencyScoreCreatedAt
          • scoreableVotesCast
          • Some could be put into a new "consistencyScoring" model
          • Or could keep in user model
        • should add isTesting to jwt for server and client side auth
          • could only update consistency scoring related fields if isTesting true
          • could decode jwt client side to make sure testing users cant see any rep icons or scores
            • or could check isTesting before returning rep score and badgeName for comment, post, user, and vote updating linkedModel and linkedAuthor
            • but that would require a token verification for GET requests, which even guest users should be able to do
        • Other possibilities:
          • determine consistency via how early on in a post's lifetime the correct vote was cast
            • could be incremental or based on w/ badge achieved
              • incr could be randly gen'd
            • wouldn't allow for a percentage, but a numeric score
            • would req alota user updates every incr or new badge
            • less consistency scoring could be added the higher the model's score went
              • in a half-bell curve like fashion capping out around 500
      • other papers have too complex systems, don't propose systems at all, or aren't applicable to my project
  • propose the new reputation system to Dr. Jamil

    • he gave the greenlight
    • said that 10 as a trivial number isn't justifiable
    • proposed that the number of votes to determine consistency score could be:
      • customized per person
      • determinable by a ML algorithm
        • could take into account any number of user features to determine number of votes taken
        • could start as baseline at 10 and keep a history of chosen numbers and determined consistency scores
        • so, could use combo of determined consistency score and how low number of votes taken as fitness function
        • could alter starting baseline based on a system-wide ML model stored on API
          • would needa store history of each user's testing vote count and resultant fitness score
        • could encourage a minimum of 3 and a maximum of 50 via fitness modifiers
@SethCram SethCram added the enhancement New feature or request label Mar 28, 2023
@SethCram SethCram self-assigned this Mar 28, 2023
@SethCram SethCram changed the title [ENHANCEMENT] Research and Implement more Complex Reputation System [ENHANCEMENT] Research and Propose more Complex Reputation System Apr 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

No branches or pull requests

1 participant