View Issue Details

IDProjectCategoryView StatusLast Update
0000871Composrcore_adminzone_dashboardpublic2018-11-28 16:24
ReporterChris GrahamAssigned To 
Status non-assignedResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0000871: Admin achievements system (gamification)
DescriptionMake being a Composr webmaster fun, by bringing in some game mechanics:
 - Ongoing positive feedback (simple rewards for doing stuff, even if it's just getting some points and little success messages) to provide encouragement
 - Levelling up (trying to get to the top level)

The intent is to guide the webmaster to make a well-rounded website, and to learn the system.

Composr would have hooks defining particular achievements.

Each hook would define:
 - a list of achievements, each with
  - a name (there'll be a corresponding 'label' language string, and a corresponding 'pass message' language string)
  - a level number
  - a point score
 - a function to measure if a named achivement was passed

(Hooks would be bundled across different addons)

Each level will have a name...
 - Level 1, Acolyte
 - Level 2, Apprentice
 - Level 3, Disciple
 - Level 4, Master
 - Level 5, Wizard

A database table would track which achievements were currently passed and skipped.

Every page request in the Admin Zone and CMS zone would trigger a check to see what achivements may have just been passed. It would be smart enough to not checked any already skipped or passed, or any from a higher level (it would detect what level you're on).

Achievement checks would also happen during CRON.

The levels would be as follows (each with 16 items, except there are 4 hidden achievements also - for a total of 100)...
 - Level 1
  - Ran Setup Wizard
  - First forum topic
  - First news article
  - First new Comcode page
  - First poll
  - First gallery image or video
  - First quiz
  - First calendar event
  - First download
  - First smartphone user
  - First tablet user
  - First Microsoft Edge hit
  - First Firefox hit
  - First Safari/Chrome hit
  - Configured your own account with a photo and/or avatar
  - Set some configuration
 - Level 2
  - First incoming hit from forums
    TIP: Post in introduction forum
  - First new member joined
  - Adding a forum
  - First banner
  - Received first content comment [if enabled]
  - Received first rating [if enabled]
   - First forum topic with a reply
  - First active chatroom conversation
  - First catalogue entry
  - Hit 5000 words of content
  - First non-bundled addon installed
  - Received points on forums [ username has to be configured]
  - Configured what custom profile fields you want
  - Done an admin search
  - Done a website search
  - Done a 'mention' in Comcode
  - Set some permissions
 - Level 3
  - First Wiki+ page
  - First search engine indexing hit
  - Customise the inbuilt random quotes
  - Created a page with multiple header tags
  - Hit 15000 words of content
  - Reached 5 members
  - Have customised menu
  - Uploaded a custom logo
  - Given points to a member
  - Received a support ticket
  - Set favicon and webclipicon
  - Added media to File/Media library
  - Added image or video attachment
  - Given out an award to some content
  - Investigated an IP address
  - Changed a default language string
 - Level 4
  - Have blocks on home page or panel with custom parameters
  - Aggregate points of your members over 500
  - Sent out a newsletter
  - First mention on Twitter [Twitter handle has to be configured]
  - First like on Facebook [Facebook page has to be configured]
  - Hit 5 unique visitors in a day
  - First incoming search engine results hit
  - More than 5 users online at once
  - First inbound link
  - Reached 10 members
  - First log in from someone on Facebook
  - Received 100 points on forums [ username has to be configured]
    TIP: Help people on forum
  - Manually edited the CSS
  - Added hot-text banner within Comcode, and used it
  - Ran a Health Check
  - Used keep_su feature
 - Level 5
  - Adding a custom PHP miniblock or minimodule
  - Run a command in Commandr
  - Running with SSL
  - Customised a template
  - Written some Tempcode inside a Comcode page
  - Reached 20 members
  - Accessed WebDAV
  - Set up a URL Scheme
  - Set up CRON
  - Got a working custom 404 page
  - Set up a robots.txt
  - Setup eCommerce settings (e.g. PayPal)
  - Added usergroup subscriptions
  - Used GUIDs in a template
  - Created a custom template set for a catalogue
 - Bonus achievements
  - Setting up a 2-way redirect to 'move' a module
  - Used the MATCH_KEY_MATCH symbol
  - Written some Selectcode for a block
  - Created a custom panel type (referencing it, and having a panel for it)
  - Added a multi-moderation
  - Got a newsletter subscriber
  - Changed default breadcrumbs
  - Changed fields.xml
  - Done an upgrade
  - Displayed an RSS feed via the side_rss or main_rss block
  - Added a custom zone
  - Exported a member CSV
  - Created a mutual friendship
  - Added a theme image
  - Created a backup
  - Added a Custom Comcode tag
 - Hidden achivements
  - Running the 'bsod' command in Commandr
  - Enabled a 'stupidity_mode' via a hidden option
  - Having any item of Comcode that contains the keywords 'Kirk', 'Spock' and 'McCoy'
  - Added a new emoticon that is an animated gif

The staff checklist block would say:
 - What achievement level you are on
 - What percentage you are through the level, with number passed and number skipped in brackets
 - How many points you have
 - List of remaining achievements on your achievement level (integrated into the normal set of tasks on the dashboard, but with an achievement icon next to it)
 - (achievements already achieved would be visible when showing completed tasks; you can already show completed tasks on the checklist block so it's not a big change)

You can skip achivements, and it just tells you you will level up without as many points.

When you pass an achievement it would show the 'pass message' in an attached message. There'd be a new 'achievement' message type (alongside current warn/notice/inform).
(Sometimes it would happen in the background and be detected with CRON, so the above would not always happen)
It would also send out an achievement notification.

Points would be given also as a 'system gift'. Therefore every achievement has an associated gift point transaction with it (assuming points are installed).

When you go up a level, it will send a special notification. The particular message will be customised for each level, and probably include some gif animation.
It should also tell the site, so that a non-editable CPF of the member can be updated to reflect the level.

The achievements system should be a non-core bundled addon. Some installation profiles would remove it.

Product a tutorial listing all the achievements and giving hints on how to win them.
(See 'Tips' above, but would have something for everything, except the Hidden achivements.)

Ideas I don't think we should go for:
 - Direct competition between Composr webmasters. It would be too easy to cheat, and it would turn off some business users.
 - Making achivements separate per-staff-member
 - Fancy artwork and sound effects built into the main Composr UI (we'll restrict ourselves to artwork in notifications)

Important design considerations:
 - I don't want this to be too challenging. It should be fun, not stressful.
 - I don't want people to be forced to do stuff they might not want to do, so everything should be skippable. Particularly special stuff will be in 'hidden' achievements.
Additional InformationPossible future extension would be to open up achivements to being a public website feature:
 - Segregate achievements per-user
 - Allow non-admins to achieve some particular achievements
 - Defining what achievements are enabled, and which are on which level, and how many points each is worth
 - Associating 'badges' graphics with achievements (optional)
 - Defining the levels
 - Showing achievements under a new profile tab
 - Some new achivevements
  - Any award would automatically carry through as a dynamically-defined achievement, that award on that date given
  - Configurable achievements based on patterns (for each you define 'X', 'Y' (if applicable), the achievement graphic, and how many points you get.), e.g.
   - Xth entries of Y content posted
   - Xth time content liked by another member
   - Xth time being given points by another member
   - First X contiguous minute block of talking to other member(s) in the chat room
   - Receiving X points within Y days
 - Create a block that shows all achievements attainable
 - [Also look at Arbo's 'rewards' addon for ocPortal, which may have some ideas to merge in]
 - Optionally tying usergroup ladders to levelling up rather than point thresholds (allow both at once, operates as an 'AND' condition)
 - Add synonyms to Admin Zone search: rewards, ribbons, badges, achievements, milestones, trophy
 - Remove pre-existing badge synonym from synonyms.txt
 - Document everything in tut_points tutorial, and cross-reference with tut_subcom and tut_featured tutorials
We had an issue for this (0001118), but I closed that off as I thought it only made sense as an extension of this issue.

(Split this into a separate issue if the rest is implemented)
TagsGood for training, ocProducts client-work (likely), Skills: Graphic design
Attach Tags
Time estimation (hours)60
Sponsorship open


There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2016-12-08 12:46 Chris Graham Relationship added related to 0002300
2016-12-08 12:46 Chris Graham Relationship added related to 0001118
2017-11-26 16:19 Chris Graham Tag Attached: Can implement during live chat
2017-12-31 23:30 Chris Graham Relationship deleted related to 0002300
2018-01-01 05:32 Chris Graham Relationship deleted related to 0002258
2018-01-01 05:33 Chris Graham Relationship deleted related to 0002257
2018-01-01 05:33 Chris Graham Relationship deleted related to 0001118
2018-01-01 05:58 Chris Graham Time estimation (hours) 20 => 60
2018-01-01 05:58 Chris Graham Summary Admin gamification (encouragement) => Admin achievements system (gamification)
2018-01-01 05:58 Chris Graham Description Updated View Revisions
2018-01-01 05:58 Chris Graham Additional Information Updated View Revisions
2018-02-07 20:36 Chris Graham Tag Attached: ocProducts client-work (likely)
2018-11-28 16:24 Chris Graham Tag Attached: Skills: Graphic design
2019-06-27 19:42 Chris Graham Tag Renamed Can implement during live chat => Good for training