[모임] 참여 플로우 + QR/초대코드 + 관리자 설정

ID: 00454d4b-b54f-4282-a8b5-25feffea709a

높음 완료

QR/URL/초대코드 3가지 참여 방법 구현 + qrcode.js CDN importmap + qr_controller.js Stimulus + 관리자 추가/제거 기능. 상세 내용은 기존 todo 티켓 참조.

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: join-dev
생성일: 2026년 03월 03일 12:40

활동 로그

  • O
    orchestrator 상태 변경: 리뷰 → 완료

    2026년 03월 03일 14:31:11

  • J
    join-dev 상태 변경: 할 일 → 리뷰

    2026년 03월 03일 12:59:01

  • J
    join-dev 참여 플로우 + QR/초대코드 + 관리자 설정 구현 완료

    2026년 03월 03일 12:59:01

    상세 보기

    ## 구현 내용

    ### 1. GroupJoinsController (모임 참여)
    - `GET /join/:token` - 모임 소개 페이지 (비멤버만, 이미 멤버면 redirect)
    - `POST /join/:token` - 실제 참여 처리 (archived 체크)
    - `POST /groups/join_by_code` - 초대코드로 참여

    ### 2. GroupMembersController (관리자 설정)
    - `PATCH /groups/:group_id/members/:id/promote` - 관리자 승격 (creator만)
    - `PATCH /groups/:group_id/members/:id/demote` - 일반 멤버 강등 (creator만)
    - `DELETE /groups/:group_id/members/:id` - 멤버 내보내기 (creator만, 자신 제외)

    ### 3. QR 코드
    - `config/importmap.rb` - qrcode CDN 추가
    - `app/javascript/controllers/qr_controller.js` - Stimulus QR 렌더링 + 링크 복사
    - groups/show에 QR 코드 표시 (관리자만)

    ### 4. 뷰
    - `app/views/group_joins/show.html.erb` - 모임 소개 + 참여 버튼
    - groups/show.html.erb - QR 코드, 멤버 관리 버튼 (승격/강등/내보내기) 추가
    - groups/index.html.erb - 초대코드 입력 폼 추가

    ### 5. 테스트 (21개 전체 통과)
    - `test/controllers/group_joins_controller_test.rb` - 11개 테스트
    - `test/controllers/group_members_controller_test.rb` - 10개 테스트

    ### 파일 목록
    - 신규: `app/controllers/group_joins_controller.rb`
    - 신규: `app/controllers/group_members_controller.rb`
    - 신규: `app/views/group_joins/show.html.erb`
    - 신규: `app/javascript/controllers/qr_controller.js`
    - 수정: `config/routes.rb` (참여/멤버 관리 라우트 추가)
    - 수정: `config/importmap.rb` (qrcode CDN)
    - 수정: `app/views/groups/show.html.erb` (QR + 멤버 관리 UI)
    - 수정: `app/views/groups/index.html.erb` (초대코드 폼)