🎫 QR 출석체크 허브 실행
행사장에서 QR 하나로 출석을 받는다. 참가자는 계정을 만들지 않는다 — 집행부가 연락처 명부를 올려 두면 사람마다 다른 링크가 나가고, 받은 사람은 그 링크를 누르는 것만으로 자기 QR 을 얻는다. 행사 당일에는 카메라 달린 PC 를 몇 대든 켜서 같은 출석부에 받는다.
관리자 화면 열기 →흐름
- 명부 — 연락처 엑셀(
.xlsx·.csv)을 올린다. 바로 넣지 않고 어느 열이 이름·연락처·소속인지 먼저 확인시킨다. 같은 번호는 같은 사람으로 보아 두 번 올려도 사람이 늘지 않는다 - 발급 — 문자로 개인 링크를 보내거나(
/q/<토큰>), 텔레그램 봇@khmuqrbot링크를 뿌려 각자 받아 가게 한다 - 체크인 — 행사마다 나는 스캐너 링크를 카메라 PC 마다 연다. 찍는 즉시 기록하고 이름을 큰 글씨로 띄운다
- 출석부 — 실시간 현황, 되돌리기, 이름으로 손 체크인, CSV 내보내기
이렇게 정한 까닭
- 로그인을 두지 않는다. 행사 하루 받자고 사람들에게 가입을 시키지 않는다. 본인 확인은 개인 링크(문자)나 텔레그램이 검증한 전화번호(봇)가 대신한다
- QR 은 행사가 아니라 사람에게 붙는다. 한 번 받은 QR 을 다음 행사에도 쓴다
- 전화번호는 암호화해 눕힌다. 명부는 노조 것이 아니라 참가자 것이다 — 화면에도 파일에도 뒷 4자리만 낸다
- 스캐너는 로그인을 받지 않는다. 관리자 비밀번호를 자원봉사자 여럿에게 알려 주지 않기 위해서다. 행사가 끝나면 링크만 갈면 죽는다
- 여러 대가 같은 사람을 동시에 찍어도 어긋나지 않는다. 먼저 넣어 보고 부딪히면 이미 있는 것으로 읽는다 — 「읽어 보고 없으면 넣는다」로 짜면 한쪽이 터진다(검사에서 실제로 그렇게 났다)
접근
https://khmuqr.duckdns.org/attend/ (비밀번호)https://khmuqr.duckdns.org/q/<토큰> · 텔레그램 @khmuqrbothttps://khmuqr.duckdns.org/s/<토큰> (행사마다 다름)https 라야 한다. 브라우저는 안전한 연결이 아니면 카메라를 내주지 않아,
http://…:5070 으로는 스캐너가 아예 열리지 않는다.
구성
sandbox) + 봇 attend-bot + 발송기 attend-senderkhmuqr.duckdns.org (bargaining 의 Caddy 가 5070 으로 프록시)sandbox/Labs/attend · 문서 docs/ATTEND.mdLabs/attend/data/attend.db (비공개, git 제외)Labs/attend/tests/ 5종 189개아직 남은 것
- 문자 발신번호 사전등록 — 서류가 들어간다. 그전까지 문자 발송은 잠겨 있다
- 웹캠이 폰 화면의 QR 을 읽는가 — 폰 화면은 빛나고 반사가 있어 종이보다 어렵다
- 실제 명단으로 한 바퀴
※ 이 실험실은 허브 안에서 돕니다(/attend/). 관리자 화면은
비밀번호로 잠겨 있고, 참가자·스캐너 화면은 각자의 토큰 링크로만 열립니다.
화면은 허브의 어두운 테마를 물려받지 않고 따로 밝은 테마로 만들었습니다 —
반쯤 물려받았더니 손대지 않은 입력칸이 깨져 보였습니다.