{"id":15726674,"url":"https://github.com/grasmash/drupal-achievements","last_synced_at":"2025-03-31T01:41:09.296Z","repository":{"id":66224342,"uuid":"152680568","full_name":"grasmash/drupal-achievements","owner":"grasmash","description":null,"archived":false,"fork":false,"pushed_at":"2018-10-16T19:05:12.000Z","size":407,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"8.x-1.x","last_synced_at":"2025-02-06T06:49:50.883Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grasmash.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-12T02:07:35.000Z","updated_at":"2018-10-16T19:05:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"e170fc39-9e20-466f-a186-fa6694edd717","html_url":"https://github.com/grasmash/drupal-achievements","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-achievements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-achievements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-achievements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grasmash%2Fdrupal-achievements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grasmash","download_url":"https://codeload.github.com/grasmash/drupal-achievements/tar.gz/refs/heads/8.x-1.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246403893,"owners_count":20771526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T22:40:20.225Z","updated_at":"2025-03-31T01:41:09.269Z","avatar_url":"https://github.com/grasmash.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nCONTENTS OF THIS FILE\n---------------------\n\n * Introduction\n * Installation\n * Creating achievements\n * Optional modules\n\n\nINTRODUCTION\n------------\n\nCurrent Maintainer: Morbus Iff \u003cmorbus@disobey.com\u003e\n\nThe Achievements module offers the ability to create achievements and\nbadges similar to systems seen on Xbox 360, Playstation 3, Foursquare,\nGowalla, GetGlue, and more. For a Drupal site, this could mean commenting a\ncertain number of times, starting a forum topic, visiting the site every day\nof the week, or anything else that can be tracked and coded.\n\nCurrent features and design:\n\n * Achievement points are based on milestones, not continuous activity.\n   Instead of getting 5 points every time a user posts a node, an equivalent\n   milestone might instead reward 20 points for posting 10 nodes. If there's\n   no achievement for posting 50 nodes, the user receives no further points.\n\n * Since achievements are milestones, each one has its own leaderboard\n   that lists when a user has met (or \"unlocked\") the goal and their\n   matching rank. A site-wide leaderboard ranks users by points they've\n   achieved, but also by timestamp -- if two users share the same point\n   total, the person who got there first gets the higher rank.\n\n * Relative leaderboards are supported and allow the user to see where they\n   are in relation to nearby ranks or the top achievers. Leaderboards also\n   show the latest achievement earned, allowing users to discover new\n   milestones they might want to strive for.\n\n * Achievements can be made \"secret\" (if they're not unlocked, a user will\n   see \"Secret Achievement\" placeholder text instead of actual data) and/or\n   \"invisible\" (the achievement doesn't show up on the user's Achievements\n   tab until it's unlocked).\n\n * Achievements can have images (or \"badges\") in one of three different\n   states: unlocked, locked, or secret. Default images can be used for all\n   achievements (and some are provided with the module), or you can override\n   them on a per-achievement basis.\n\n * Achievement unlocks fade-in and out at the window's bottom right corner.\n\n * Your code decides whether achievements are retroactively applied or not.\n\n\nINSTALLATION\n------------\n\n 1. Copy the achievements/ directory to your sites/SITENAME/modules directory.\n\n 2. Enable the module and configure it at admin/config/people/achievements.\n\n 3. Set your desired permissions at admin/people/permissions.\n\n 4. See \"Creating achievements\" for how to code your own achievements.\n\n\nCREATING ACHIEVEMENTS\n---------------------\n\nI've made two entirely deliberate design decisions:\n\n 1. No achievements are shipped by default. Earning the same achievement\n    over and over again at dozens of Drupal sites is mind-numbingly not-fun.\n    If you're going to offer achievements, at least _try_ to be creative and\n    make them unique to your site.\n\n 2. Creating achievements requires custom code. Achievements that can be\n    automated in a user interface tend to be mind-numbingly not-fun and\n    grindish (\"when user creates $n comments, $n posts\", etc.). Quality\n    achievements require custom logic tailored to your site.\n\nI _do_ believe that achievement grinds have their place and I _do_ want to\nbe rewarded for posting 1000 comments or 250 nodes. I just don't want to see\ndefault implementations on every site that uses this module. It's lazy. It's\nnot-fun. It reflects poorly on my code and achievement whoredom if I promote\ncookie-cutter gamification on Drupal sites everywhere.\n\nTo begin creating achievements:\n\n 1. Create the achievement in the admin UI at\n    /admin/structure/achievement_entity/add.\n\n 2. To actually implement the ability for users to achieve the achievements,\n    you'll need to create or use a custom module and implement the API. Further\n    information about module development and the Drupal APIs you can listen on\n    to trigger your achievements is available in the \"Develop for Drupal\" docs\n    at http://drupal.org/documentation/develop. At the minimum, read:\n\n     * Module file names and locations: http://drupal.org/node/1074362\n     * Telling Drupal about your module: http://drupal.org/node/1075072\n     * Implementing your first hook: http://drupal.org/node/1095546\n\n 3. Read about the Achievements API, and examples, in achievements.api.php.\n\n 4. Adding new achievements (or changing the info of existing ones) will\n    require you to rebuild the internal cache, which you can refresh from\n    admin/config/people/achievements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrasmash%2Fdrupal-achievements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrasmash%2Fdrupal-achievements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrasmash%2Fdrupal-achievements/lists"}