| 요약 | Discourse Gamification 플러그인은 인스턴스에 커스터마이징 가능한 점수 시스템(카르마, 쿠폴, 포인트)과 리더보드를 추가합니다. | |
| 설치 가이드 | 이 플러그인은 Discourse 코어에 번들로 포함되어 있습니다. 별도로 설치할 필요가 없습니다. | |
| 데모 | 리더보드 |
기능
Discourse는 기본적으로 게이미피케이션 기능(배지, 신뢰 수준)을 제공하지만, 일부 커뮤니티는 이를 한 단계 더 발전시키고 싶어합니다. 바로 여기서 GitHub - discourse/discourse-gamification · GitHub 이 등장합니다.
이 플러그인은 관리자가 커뮤니티 참여를 통해 포인트가 부여되는 커뮤니티 점수 경쟁을 쉽게 생성하고 조정할 수 있도록 합니다.
포인트는 당일 이벤트에 대해 매시간 자동으로 업데이트되며, 점수는 지난 10일간의 데이터를 기준으로 하루에 한 번 재계산됩니다.
치어(Cheers)
사용자는 커뮤니티에서 특정 행동을 수행하면 "치어"를 획득합니다. 각 사용자의 치어 점수는 사용자 카드와 사용자 프로필에 표시되며, 사용자 디렉터리에서도 활성화할 수 있습니다.
플러그인은 마음에 들지만 '치어’라는 이름이 여러분의 커뮤니티에 적합하지 않나요? Discourse의 모든 텍스트 커스터마이징을 사용하여 원하는 이름으로 변경할 수 있습니다.
리더보드
관리자는 여러 리더보드를 생성할 수 있으며, 각 리더보드에는 다음과 같은 항목을 커스터마이징할 수 있습니다:
- 시작 날짜
- 종료 날짜
- 경쟁 사용자
- 리더보드 공개 범위
기본적으로 점수 부여가 시작된 첫날부터 모든 사용자를 나열하는 /leaderboard 경로에 기본 리더보드가 제공됩니다.
Discourse Meta 에서 데모를 확인해 볼 수 있습니다.
스코러블(Scorables)
현재, 다음과 같은 이벤트가 치어를 부여합니다:
- 일일 방문
- 플래그 승인
- 좋아요 제공
- 좋아요 수신
- 게시글 작성
- 게시글 읽기
- 해결책 승인 (Discourse Solved (수락된 답변 플러그인) 필요)
- 읽은 시간
- 토픽 생성
- 사용자 초대 수락
예정된 스코러블은 로드맵에서 확인하세요.
점수 백필(Backfill)
/admin/plugins/gamification 페이지의 ‘Recalculate Scores’ 버튼을 사용하여 UI를 통해 과거 점수를 계산하는 백필을 실행할 수 있습니다:
스코러블 또는 대상 점수 카테고리를 변경한 경우 리더보드를 재계산하는 데에도 사용할 수 있습니다. 하루에 최대 5회까지 리스코어를 생성할 수 있으며, 시간 범위(또는 사용자 지정 범위)를 선택할 수 있습니다:
구성
전역 커스터마이징 항목은 다음과 같습니다:
- 각 행동의 점수 배율
- 포인트를 획득할 수 있는 카테고리 제한
- 플러그인 활성화 및 비활성화
이러한 플러그인 수준 설정은 /admin/site_settings/category/plugins?filter=plugin%3Adiscourse-gamification 에 있습니다.
리더보드를 생성, 삭제 및 업데이트하려면 관리자가 /admin/plugins/gamification 을 방문할 수 있습니다.
위젯으로 사용
이것은 더 작은 형식으로 위젯으로 표시될 수도 있으며, Right Sidebar Blocks 테마 컴포넌트 내부에서 사용할 수 있습니다. 자세한 정보는 해당 페이지에서 찾을 수 있습니다.
점수 기반 배지
Enable Badge SQL 을 사용하여 게이미피케이션 점수에 기반한 자동 배지를 가질 수 있습니다.
사용자가 9000개 이상의 치어를 가질 때의 예시 배지입니다:
SELECT user_id, current_timestamp AS granted_at
FROM gamification_scores
WHERE (:backfill OR user_id IN (:user_ids))
GROUP BY 1
HAVING SUM(score) > 9000
변경 이력
- 2022-05-02T03:00:00Z - 공개 릴리스
- 2022-05-10T05:00:00Z - 최근 변경 사항으로 로드맵 업데이트
로드맵
(대략적인 순서)
-
prioritize usernames in ux가 비활성화된 경우 리더보드가 이를 존중하도록 만들기 -
리더보드 포디움에 더 높은 해상도의 아바타 사용
-
배지별 커스텀 스코어링 추가
-
리액션별 점수 부여 추가 (Discourse Reactions 필요)
-
채팅 이벤트 스코어링 추가 (Discourse Chat 필요)
-
투표 이벤트 스코어링 추가 (투표 생성, 투표 참여)
-
미디어 이벤트 스코어링 추가 (이미지 게시, 비디오 게시, 원박스 게시)
구현됨:
사용자 디렉터리의 커스텀 점수 컬럼에서 i18n 테이블 제목 수정스테이징 사용자 무시익명화된 사용자 무시 (이메일 매칭@anonymized.invalid)리더보드 편집 폼 스타일링리더보드 “you” 링크가 플로팅 헤더를 수용하도록 더 큰 오프셋 필요본인 사용자 위치가 100보다 큰 경우 리더보드에서 본인 사용자 하이라이트가 작동하지 않는 문제 수정사용자 카드/프로필 치어 점수에 i18n 천 단위 구분자 추가리더보드에 시간 범위 필터 추가리더보드 설정에 기본 시간 범위 필터 추가리더보드 설정에excluded_groups_ids추가관리자가 Discourse 외부의 스코러블 이벤트와 통합을 허용하기 위해 사용자에게 임의의 포인트를 부여/제거할 수 있도록 허용점수가 리더보드로 링크되도록 만들기 (사용자 프로필 및 사용자 카드 모두)
우리가 호스팅하고 있나요? 이 플러그인은 Business 및 Enterprise 플랜에서 사용할 수 있습니다 Gamification | Discourse - Civilized Discussion







