Skip to content

Escalating privileges: proposal for initial version

sebbacon edited this page Feb 16, 2012 · 12 revisions

See also more extensive vision-type proposal at Escalating privileges system #Goals

The goals for later versions will be to help with the administrative burden. The initial version will be focused on improving the quality of requests. We should:

  • Encourage good quality questions
    • ...but without censoring anything
  • Specify and implement a first version release promptly
    • ...but ensure we provide solid foundation for future iterations

#Tactics

  • Make good quality questions stand out throughout the system
  • Conversely, make bad quality questions less visible
  • Provide incentives to people to ask good quality questions in the form of privileges

#Specifically

  • Provide upvote and downvote buttons for requests. When a request is marked down, include a small "reasons" text field.
    • On Authority pages and Search pages, list only requests with a score of more than 0 unless explicitly asked otherwise via some UI widget (TBC)
    • On Home page, list only recent requests with a score of more than 1
    • On requests with a score of less than 1, include a banner that says "This request has been marked down by other site users for the following reasons"
      • and link to page that describes what makes a good quality question
  • Incentives:
    • Privileges: privileges should be making multiple requests, the ability to vote, and the ability to comment
      • Users with negative points can't make any requests
      • Users with 0 points can only make one request per day
      • Users with 1 point can make up to 5 requests per day
      • Users with 20 points can make up to 20 requests per day
      • Users with 5 points can comment on requests
      • Users with 15 points can vote requests and comments up
      • Users with 30 points can vote requests and comments down
    • Points can be earned or lost by:
      • Filling in your profile (+1)
      • Having a request voted up (+5)
      • Having a request that's been voted up at least once enter a finished state (successful, unsuccessful) (+3)
      • Having comments voted up (+1)
      • Having requests voted down (-2)
      • Having comments voted down (-1)
  • Seeding:
    • All current site admins have 200 points to start with

#Implementation

  • Put some thought into designing user authorization system: roles, permissions, groups?: 1d
  • Design the points earning data structure (around events, so we can explain them to users?): 1d
  • Wireframe / design new UI components: 1d
    • earning new privileges (and losing them): flash for letting user know
    • badges or similar for listing privileges on user profile page
    • list points-earned-history for user profile page
    • flash for pointing out new features (e.g. highlighting new upvote/downvote buttons, etc)
    • upvote/downvote on requests: ensure it's obvious if/why you can't use it (yet)
    • unhiding downvoted requests on results page (or maybe they are still returned but very subtly compared with upvoted?)
    • asserting that a given request is demoted and making it clear how to find out why
  • Implement base authorization system: 10d
    • implement API
    • admin backend for editing all permissions directly
    • integrate / refactor / migrate current admin permissions into new system
  • Implement upvote/downvote for requests: 6d
  • Implement request hiding / demoting / promoting: 3d
  • Implement user-profile related changes (list of privileges, history of points earned, etc): 5d
  • Integrate same into admin backend: 1d
  • HTML mucking around: 3d
  • Testing, bug fixing, iterating: 10d

Total: 41d

Clone this wiki locally