PLAYTAP 운영 콘솔

관리자 로그인
데모 계정 (클릭하면 자동 입력)
총괄 관리자
admin@playtap.io
운영 스태프
staff@playtap.io
부스 판매자
→ 바로 POS
조회 계정
읽기 전용

행사 선택

운영할 행사를 선택하세요
행사 선택상단에서 행사를 선택하세요
실시간 연결됨
박운영
총괄 관리자

운영 대시보드

실시간 행사 관제

현재 체류 인원
실시간 장내 (입장−퇴장)
입장 진행률
연동 팔찌 대비 입장
총 포인트 충전
누적 충전액
포인트 사용
누적 사용액
객단가 (1인 평균)
결제자 1인당 사용액
환불 대기
점검·오프라인 게이트
게이트 연결 상태 기준

시간대별 입장 현황

granted 입장 시간대 집계 · 실데이터

입장 요약

현재 체류
누적 입장 / 퇴장
재입장
퇴장·재입장 실시간 처리는 게이트 관리 > 퇴장·재입장에서 확인

포인트 충전 vs 사용

원장(Wallet Ledger) 시간대 집계 · 실데이터

수익 · 정산 요약

미사용 잔액(환불 대상)
부스 정산 예정
객단가 (1인 평균)
미사용 잔액은 환불 마감 후 낙전 수입으로 확정됩니다 · 부스별 상세는 정산 관리에서

카테고리별 매출

주문 상품 카테고리 집계 · 실데이터

매장별 매출 TOP 5

바우처 · 팔찌 현황

바우처 발급
바우처 메일 발송
바우처 사용(팔찌 연동)
팔찌 등록 / 연동
현재 장내 팔찌
PG 실집계 · 앱 배너 노출·클릭 성과는 트래킹 도입 후 제공 예정(준비중)

현재 상태 경고

실시간 상태 · 조치 판단은 운영자 몫
상태 확인 중…

컵 반납 · ESG 관제 데모 · 준비중

다회용 컵 RFID 회수 현황 (예시 데이터 · 3단계 예정)

총 컵(재고)
24,000
다회용 컵
사용 중
8,210
issued · 미반납 상태
반납 완료
13,470
returned
미반납 위험
1,140
종료 시 분실 처리
세척 대기
1,180
cleaning
반납률
85.3%
실시간 누적
일회용 절감
13,470
개 · 회수 기준
탄소 절감(추정)
0.41t
CO₂e

시간대별 컵 배포 vs 반납

누적 · 오늘 11:00~20:00

ESG 요약

총 배포22,950개
총 반납13,470개
반납률85.3%
참여 사용자9,840명
1인 평균 반납1.4개
보증금 환급액₩6,735,000
미반납 보증금(보유)₩570,000
컵당 보증금 ₩500 · 반납 시 팔찌 지갑으로 환급 · 미반납분은 종료 후 확정

반납대별 반납량 TOP 5

누적 반납 수

컵 상태 분포

현재 시점

반납대 현황

RFID 수거함 · 포화 / 네트워크 모니터링
ST-02 푸드존 A · 수거함 포화 92%
수거 스태프 디스패치 권장 ›
ST-04 캠핑존 · 오프라인 6분
로컬 큐 저장 중 · 현장 점검 필요 ›
반납대위치반납 수수거함네트워크마지막 통신
ST-01메인스테이지 앞2,140
online방금
ST-02푸드존 A3,520
online12초 전
ST-03서브스테이지1,980
online8초 전
ST-04캠핑존1,240
offline6분 전
ST-05정문4,590
online방금

예외 큐

2 확인 필요
시각반납대유형RFID조치
18:42ST-02미등록 컵RFID-CUP-???
18:39ST-05중복 반납RFID-CUP-A9F82K
18:35ST-01인식 실패-
18:30ST-04오프라인 대기RFID-CUP-3K20F복구 시 자동 동기화

사용자 반납 확인

클레임 응대 · 팔찌ID로 조회
관객강민지 · WEEKEND
팔찌 RFIDWB-839201
수령 컵3개
반납 / 미반납2 / 1
보상 지급2회 (₩2,000 환급)
지금까지 13,470개의 일회용 컵을 줄였습니다
반납률 85.3% · 행사 종료 후 ESG 리포트(절감량·탄소·부스별)를 PDF/엑셀로 내보낼 수 있습니다

팔찌 교환소

바우처 QR 스캔 → RFID 팔찌 연동

① 바우처 QR 스캔

리더기 연결됨
QR 스캔 대기
관객의 바우처 QR을 스캔하세요
수동 입력 (스캐너 없을 때)

② 연령 확인 · 팔찌 태그 → 매칭

신분증 연령 확인 (주류 구매 허용)
그룹·대리 등록 (1인 다팔찌)
RFID 태그 대기
새 팔찌를 리더기에 태그하세요
수동 입력 (리더기 없을 때)
매칭 구조바우처 토큰과 RFID 고유번호를 1:1 매칭합니다. 포인트는 칩이 아닌 서버 Wallet에 저장되며, 연령 확인 결과는 팔찌의 alcohol_flag로 저장되어 POS 주류 결제 시 검증됩니다.

최근 등록 내역

이번 접속 세션에서 등록한 건
바우처 ID이름전화권종QR 토큰RFID 고유번호주류등록 상태

RFID 관리

팔찌 상태 조회 · 재발급 (Wristband Validation Service)

RFID 조회

팔찌 스캔 대기
조회할 RFID 팔찌를 태그하세요
RFID를 스캔하거나 조회하면 상태가 표시됩니다.
기존 RFID 비활성화 + 새 RFID로 잔액·소유자 이관서버(/wristbands/reissue)를 실제 호출합니다. 기존 팔찌는 비활성(disabled)되고, 동일 계정·티켓·잔액이 새 RFID로 이관됩니다. 개인정보는 삭제되지 않으며 감사 로그에 기록됩니다.

① 기존 RFID 조회 · 비활성화

기존 RFID를 조회하면 관객·잔액이 표시됩니다.

② 새 RFID 연결

새 팔찌 태그 대기
교체할 새 RFID 팔찌를 태그하세요

재발급 로그

상단 = 이번 세션 실처리 · 하단 2건 = 데모 샘플
시간기존 RFID새 RFID관객사유이관 잔액처리자
15:39:51RFID-2210ERFID-5567F강도윤분실₩17,800데모
14:21:08RFID-1180XRFID-9043Y한예린고장₩4,500데모

입장 · 티켓

티켓 조회 · 입장 현황 · 오류 관리 · 상태 관리 (Access Control Service)

네 탭 모두 서버 실데이터입니다티켓 조회·상태는 /tickets, 입장 현황은 /dashboard + /dashboard/charts, 오류 관리는 /entry/logs?result=denied 기준입니다. 시간대별 집계는 KST 기준입니다. 단, 여기 '오류'는 서버가 판정한 입장 거부(denied)만 뜻합니다 — 리더기 태그 인식 실패·게이트 기기 장애·네트워크 단절은 서버에 요청 자체가 도달하지 않아 기록되지 않습니다(하드웨어 오류 수집 채널 없음).

티켓 목록

서버 /tickets 실데이터 · 상태 변경 즉시 반영
티켓 ID이름권종상태입장연동 팔찌상태 변경
불러오는 중…
총 입장
연동 팔찌 기준
미입장
연동 팔찌 중 미입장
재입장
reentry 기록 수
입장 오류
서버 판정 거부(denied)

시간대별 입장

KST · granted(in/reentry)

게이트별 입장자

등록 게이트 전체
불러오는 중…
거부 사유
전체
게이트
전체
거부 사유는 서버가 기록한 값만 나옵니다판정 코드가 정의한 사유는 5종(미연동 팔찌 · 만료/비활성 팔찌 · 만료 · 입장일 불일치 · 재입장 제한)이며, 실제 기록이 있는 사유만 칩으로 표시합니다. 기록이 없는 사유를 0건으로 채우지 않습니다. 처리 상태·담당자 컬럼은 DB에 없어 표시하지 않습니다.

입장 거부 기록

/entry/logs?result=denied · 최신순
시간거부 사유RFID게이트방향
불러오는 중…
총 티켓
유효(valid)
사용(used)
장내(입장 중)
취소·무효
팔찌 연동

권종별 티켓 분포

실데이터

게이트 관리

리더기 연결 · 입장 로그 · 장비 오류 (Reader Auth Service)

전체 게이트
리더 연결됨
리더 미연결
오프라인
게이트위치리더기연결 상태마지막 신호
실데이터 · 실동작
게이트 목록은 서버(GET /api/gates)의 실제 게이트이며, 각 게이트에 배정된 활성 GATE_READER(GET /api/devices 조인)를 표시합니다. 리더기 연결은 POST /api/devices 로 기기를 실제 등록하고 인증 키를 1회 표시하며, 해제·교체는 POST /api/devices/:id/deactivate 를 호출합니다. 게이트 만들기(총괄 전용)는 POST /api/gates 로 새 게이트를 실제 생성하며 legacyId(GATE_xxxx)를 서버가 자동 채번합니다. 생성 직후 리더기 연결로 리더를 붙입니다.
실시간 수집
시간게이트RFID 고유번호구분처리 결과리더기비고
퇴장 태깅 = 체류 인원 정합의 핵심퇴장 스캔이 없으면 '현재 체류 인원'과 재입장 판정을 계산할 수 없습니다. 게이트는 입장/퇴장 양방향 태깅을 기록합니다.
누적 입장
누적 퇴장
현재 체류
입장 − 퇴장 정합
재입장

퇴장 처리

퇴장 팔찌 스캔
퇴장하는 팔찌를 태그하세요

최근 퇴장·재입장 로그

실 퇴장은 상단에 추가 · 아래는 데모 예시
시간RFID게이트구분재입장 가능
15:40:12RFID-7741CGate A퇴장가능
15:38:55RFID-2210EGate B재입장-
15:35:01RFID-9912DGate C퇴장가능

리더기 오류 내역 3단계 예정

리더기 신호 실패·스캔 오류·인증서 상태 등 실시간 오류 수집은 3단계에 제공됩니다. 현재 게이트 연결 상태는 게이트 연결 상태 탭에서 실데이터로 확인할 수 있으며, 실제 입장 거부 사유는 입장 로그 탭에 실시간으로 기록됩니다.

실시간 공간별 수용 인원 현황

구역별 체류 인원 · 게이트 (Access Control Service)

수용 인원은 /spaces/:id/occupancy 실데이터입니다구역 단위 퇴장 태깅이 없는 경우 실시간 인원 대신 '누적 입장(추정치)'로 정직 표기합니다. 각 행의 기준(실측/추정)을 확인하세요.
공간장소게이트현재 인원기준
불러오는 중…

차량 등록

현장 경호 확인 → 운영자 등록 · 모바일 최적화 화면

등록 차량
오늘 등록
표시 중

새 차량 등록

번호판 중심 · 빠른 등록

금일 등록 차량

결제 · 충전

포인트 충전 · 내역 조회 · 에러 관리 (Point Transaction · Wallet · Idempotency Service)

총 충전
원장 charge 합계
총 사용
원장 pay 합계
미사용 잔액
지갑 잔액 합(프로모 포함)
충전 건수
원장 charge 행 수

거래 내역

서버 원장(Wallet Ledger) 기준 · 실데이터
시간금액구분승인/참조번호부스처리 상태
RFID를 입력해 개인 거래내역을 조회하세요

① RFID 스캔 → 잔액

팔찌 스캔 대기
충전할 RFID 팔찌를 태그하세요

② 충전 금액 → 결제

₩10,000₩30,000 ₩50,000₩100,000
처리 순서RFID 조회 → 잔액 확인 → 금액 선택 → 충전 요청 → 서버 원장(Wallet Ledger) 기입 · 멱등키 보호 → 갱신 잔액 확인
PG 장애 표시등 (이 브라우저 전용)
아무것도 차단하지 않습니다. 켜면 이 콘솔 화면 상단에 장애 배너만 띄웁니다 — 서버에 저장되지 않고, 다른 운영자 화면·관객앱·POS 에는 반영되지 않으며, 신규 충전·외부 결제도 그대로 처리됩니다. 실제 차단 기능은 서버에 없습니다 · 인프라 상태는 설정 > 시스템 상태
미완료 충전 주문
결제창까지 갔으나 크레딧 미반영
부분 결제
잔액 부족 등으로 일부만 결제
여기 있는 두 지표가 현재 수집되는 결제 이상징후의 전부입니다'PG 응답 실패'·'Webhook 실패'·'중복 충전 의심' 카드는 제거했습니다 — PG 콜백 실패와 Webhook 수신 실패를 기록하는 채널이 서버에 없고, 중복 충전은 멱등키(Idempotency)가 애초에 성립을 막아 별도 집계 대상이 아닙니다. 재처리 버튼도 제거했습니다(서버에 재처리 엔드포인트 없음 — 토스트만 띄우는 가짜 버튼이었습니다).

미완료 충전 주문

/dashboard/payment-issues · 최신순
시간주문 IDRFID금액
불러오는 중…

환불 관리

행사 종료 후 잔액 환불 처리 (총괄 전용)

전체 환불 일시 중지
환불 대상 잔액
프로모션 포인트 제외
환불 대기
계좌 이체 대기
환불 완료
처리 완료

RFID 스캔 → 환불

팔찌 스캔 대기
환불할 RFID 팔찌를 태그하세요
환불 정책
· 행사 종료 후 잔액 환불 가능
· 이미 사용된 포인트는 환불 불가
· 부정 사용 의심 건은 검토 필요
· 일시 중지 시 신규 환불 요청 차단

환불 처리 현황

/dashboard 집계
환불 완료
환불 대기
환불 대상 잔액(미환불)
건별 환불 목록은 아직 조회할 수 없습니다서버에 환불 단건 목록 엔드포인트가 없습니다(POST /api/refund 처리만 있고 GET 목록이 없음). 위 합계는 실집계이며, 아래 표에는 이 브라우저에서 방금 처리한 환불만 남습니다 — 새로고침하면 비워집니다. 데모 6행은 제거했습니다.
시간RFID관객환불액상태

정산 관리

부스 정산 · 낙전수입 · 환불 마감 후 확정

총 포인트 사용
정산 대상 매출
정산 지급 예정
수수료 차감 후
미환불 잔액
환불 마감 시 낙전 확정
환불 마감 데모
D+7
정책 예시

부스별 정산 현황

포인트 사용액 기준 · 실데이터
매장매출(사용)수수료정산액상태

낙전수입 (Breakage)

정의
환불 마감 기한까지 환불되지 않은 잔액은 행사 수익으로 확정됩니다. 충전 포인트만 대상이며 프로모션 포인트는 제외됩니다.
총 미사용 잔액(환불 대상)
환불 완료
환불 예정(대기)
낙전 예상액산출 불가 — 아래 참조
낙전 예상액을 낼 수 없는 이유낙전은 환불 마감일이 지나 잔액이 소멸 확정된 금액인데, 마감일을 정하는 정책 값도 마감을 실행하는 로직도 서버 스키마·코드에 아직 없습니다(위 '환불 마감 D+7' 은 확정된 정책이 아니라 화면상 예시입니다). 마감 개념이 없으면 "아직 환불 안 된 잔액"과 "낙전 확정액"을 구분할 수 없어, 지금 숫자를 내면 미환불 잔액을 낙전으로 잘못 부르는 셈이 됩니다. 환불 마감정책이 확정되면 그때 산출합니다.
회계 정합식은 아직 맞출 수 없습니다선수금(충전) = 사용 + 환불 + 낙전 을 검증하려면 사용액이 정확해야 하는데, 현재 결제거래 기준 사용액이 원장과 어긋나 있습니다(원장과 짝 없는 고아 결제행 — 결제·충전 화면의 경고 참조). 데이터 정리 전까지 정합식 대시보드를 만들면 억지로 맞춘 화면이 되므로 만들지 않았습니다.

판매자 POS

부스 판매자 계정

부스 누적 매출
최근 결제 건수

상품 선택

장바구니

상품을 선택해 담아주세요
상품 합계₩0
결제 총액₩0

RFID 결제

잔액 조회 (선택)
팔찌를 대거나 UID 입력 후 조회

최근 결제 내역

서버 원장(PG) 기준 · 실데이터
🍔 클래식 버거 데모인기 1위 · 86건
🍟 감자튀김 데모인기 2위 · 71건
🍺 생맥주 500cc 데모인기 3위 · 44건
시간지갑 ID상품금액상태
불러오는 중…

부스·메뉴 관리

부스별 상품(메뉴) 등록·수정·삭제 · 저장 즉시 판매자 POS 반영 (총괄 전용 · PG 진실원천)

등록 상품

상품 목록

삭제는 소프트삭제(주문·정산 참조 보존) · 실데이터
상품명카테고리가격주류용기
부스를 선택하세요

판매자 계정

부스 판매자 계정 생성·부스 지정·비활성 (총괄 전용 · 로그인 시 자기 부스로 고정)

계정 목록

비밀번호는 저장·표시하지 않습니다 · 실데이터
이메일이름역할부스상태
불러오는 중…

공지사항

관객 앱 공지 운영 · 게시 즉시 앱에 반영 (웹뷰 · content_version)

총 공지
게시 중
임시저장

공지 목록

최신순 · 게시 즉시 관객 앱 반영 · 실데이터
제목게시 상태고정수정 시간
불러오는 중…

행사 관리

행사 기본정보 · 운영 설정 (실데이터)

행사 정보 불러오는 중…
바우처 일괄 발급·QR·발송 관리는 바우처 발급 메뉴에서 제공됩니다.

설정

관리자 권한 · 시스템 설정 · 운영 로그 · 시스템 상태

관리자 계정 실데이터

/api/admin-accounts · 총괄 전용 · 역할 · 접근 메뉴 · 활성/비활성
이메일이름역할접근 메뉴부스상태
불러오는 중…
역할 (Authentication Service · JWT · 4역할)
총괄 · 운영 스태프 · 부스 판매자 · 조회 계정
접근 메뉴는 역할에 따라 자동 부여되며, 부스 판매자만 담당 부스가 필요합니다.

행사 · 운영

환불 가능 여부
행사 종료일이 있어야 마감이 계산됩니다.
팔찌 재사용 허용 불러오는 중…
회수한 팔찌를 다른 관객에게 다시 발급할 수 있는지. 끄면 한 번 쓴 팔찌는 재발급에서 제외됩니다(회수 후 폐기 운영). 잘못 연동한 걸 같은 관객에게 되돌리는 복구는 이 설정과 무관하게 항상 가능합니다. 총괄만 변경할 수 있습니다.
재입장 허용 불러오는 중…
알림 (푸시/SMS)

인프라 · 연동

3단계 예정
RFID 리더기 대수, PG(결제대행) 연동, 데이터 백업·배포 방식 등 인프라 연동 현황은 실제 지표 기반으로 3단계에 제공됩니다. 현재 값은 표시하지 않습니다.
PG 장애 대응 (데모)

운영 로그 (Audit Log Service)

/audit-logs 실데이터 · 최신순 · 변경 이력 · 보안 감사
시간작업자 유형작업대상상세
불러오는 중…
시스템 상태 모니터링 3단계 예정
API 응답·큐 적체·배포(Blue/Green·Multi-AZ)·리더기 등 인프라 지표는 실제 관측 데이터가 연동되는 3단계에서 제공됩니다. 근거 없는 인프라 수치는 표시하지 않습니다.

현재 실연동 상태

이 콘솔이 실제로 사용하는 백엔드
운영 API 서버확인 중…
대시보드·정산·팔찌·입장·결제 데이터는 이 API(:3001)에서 실시간으로 조회합니다.

바우처 발급

티켓사 판매 명단(엑셀) → 입장 바우처 발급 · QR 이메일 발송 (Voucher Issue Service)

이메일 발송 설정 확인 중…발급·목록·발송 상태는 서버 /api/vouchers 실데이터입니다. 발송 설정(smtp_configured)을 확인하고 있습니다.

바우처 목록

/api/vouchers 실데이터 · 최신순
발급시각이메일이름티켓주문번호주류상태JTI액션
불러오는 중…
백로그
발급 취소(revoke) · 미등록 권종 관리 · 500행 초과 청크 업로드 · 발송 실패 자동 재시도

① 명단 업로드 (엑셀 · CSV)

엑셀 엔진 로드 중…
컬럼 순서 (고정)이메일 | 이름 | 영문명(선택) | 티켓종류 | 성인여부(Y/N) | 주문번호(선택) · 첫 행이 헤더('이메일'/'email' 포함)면 자동으로 건너뜁니다. 최대 500행. 주문번호는 티켓사(인터파크 등) 주문번호입니다.
중복 정책
정규화된 행 내용 전체(이메일·이름·티켓·성인여부·주문번호)의 지문으로 중복을 막습니다. 같은 파일을 다시 올려도 이중 발급되지 않습니다. 같은 사람에게 정당하게 2매가 필요하면 주문번호 열에 서로 다른 값(예: 주문번호-1, 주문번호-2)을 기입하세요.

② 미리보기 · 검증 → 발급

명단을 업로드하면 검증 결과가 표시됩니다
#이메일이름티켓주문번호성인검증
업로드 대기

라인업·타임테이블 관리

관객 앱 ARTIST 탭 라인업 · /app-content · section: artists 실데이터 · 초안은 앱에 노출되지 않습니다

게시 상태

불러오는 중…
초안 저장 후 [게시]해야 관객 앱에 반영됩니다 · 게시 전 형식 검사(스테이지·슬롯 범위)가 실행됩니다 · 아티스트 사진(선택)은 앱 아티스트 카드·상세에 표시됩니다 · SNS(인스타·유튜브) 주소는 선택이며 https:// 전체 주소를 넣어야 하고, 비워두면 앱에서 아이콘이 숨겨집니다

스테이지

불러오는 중…

타임테이블 축

30분 = 1슬롯

DAY별 라인업

이름스테이지시작길이시간 표시장르소개사진SNS
불러오는 중…

지도 시설 핀 관리

관객 앱 MAP 탭 시설 핀 · /app-content · section: map 실데이터 · x·y는 지도 좌측상단 기준 % 좌표

게시 상태

불러오는 중…
모든 핀에 이름·카테고리·x·y(0~100)가 있어야 앱 지도에 표시됩니다 (하나라도 어긋나면 앱은 예시 지도를 유지)

시설 핀 목록

이름카테고리X (0~100)Y (0~100)설명
불러오는 중…

배치 미리보기

1000 : 800 비율 · 입력 즉시 반영

MD 상품 관리

관객 앱 MD(굿즈) 상품 · /app-content · section: md 실데이터 · 가격은 정수(원)

게시 상태

불러오는 중…
초안은 앱에 노출되지 않습니다 · 상품명 필수, 가격은 0 이상의 정수(원) · 상품 사진(선택)은 앱 MD 카드에 표시됩니다

상품 목록

상품명가격 (원)설명뱃지카테고리사진
불러오는 중…