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 카드에 표시됩니다

상품 목록

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