⚙️ 개발자
개발자 비밀번호를 입력하세요.
이 비번은 .env(COURT_DEV_PASSWORD)에만 있습니다.
개발자 비밀번호를 입력하세요.
이 비번은 .env(COURT_DEV_PASSWORD)에만 있습니다.
관리 탭을 여는 비밀번호입니다. 바꾸면 열려 있던 관리 화면이 전부 잠깁니다 (쿠키 서명이 이 비번에서 나옵니다).
개발자 비밀번호는 여기서 바꾸지 않습니다. NAS 의 .env 에서
COURT_DEV_PASSWORD 를 고치고 컨테이너를 재시작하세요 —
관리자 비번을 잃었을 때 되돌릴 최후의 열쇠라, 웹에 열어 두지 않습니다.
회원관리 탭 하나만 더 잠급니다. 관리자 비밀번호를 통과한 뒤 한 번 더 묻습니다 (대신하는 것이 아니라 겹쳐서 걸립니다).
회원관리는 전화번호가 줄줄이 보이는 유일한 화면입니다. 대기판을 맡기는 것과 명단을 맡기는 것을 갈라 두고 싶을 때 쓰세요 — 경기 운영은 여럿이 하고 명단은 몇 사람만 보는 클럽을 위한 자리입니다.
기본은 없음입니다 — 안 정해 두면 이 문 자체가 없고 관리자 비밀번호만으로 열립니다. 정하거나 없애면 열려 있던 회원 화면이 전부 잠깁니다. 잊어버리면 여기서 다시 정하면 됩니다(개발자 비밀번호가 최후의 열쇠입니다).
게임을 신청할 때 조가 짧은 비밀번호를 정하고, 그 경기를 끝낼 때 다시 묻는 장치입니다. 지나가던 사람이 남의 경기를 끝내는 일을 막지만, 신청과 종료가 한 단계씩 길어집니다. 기본값은 사용 안 함입니다.
켜고 끄는 것은 바로 반영되지만 이미 올라간 경기에는 소급하지 않습니다 — 켜기 전에 만든 조는 비번이 없어 관리 화면에서 끝내야 합니다.
지금은 대기조가 먼저 비는 코트로 앞에서부터 올라갑니다 — 신청한 사람은 어느 코트인지 끝까지 모릅니다. 이걸 켜면 신청하는 순간 올라갈 코트가 정해지고, 대기 줄과 신청 완료 화면에 번호가 적힙니다. 기다리는 사람이 그 코트 하나만 지켜보면 됩니다.
⚠️ 근거는 “먼저 시작한 경기가 먼저 끝난다” 는 전제뿐이라 늘 맞지는 않습니다. 짧게 끝나는 경기와 길게 가는 경기가 섞이면 순서가 어긋납니다. 다만 코트가 노는 일은 생기지 않습니다 — 정해 둔 코트가 안 끝나면 그 조만 기다리고, 지정이 없는 뒷조가 빈 코트로 올라갑니다.
켜면 화면 모양도 바뀝니다. 지정된 대기조가 대기 줄에서 빠져 그 코트 바로 밑에 작게 붙습니다 — “2번 코트가 경기 중이고 다음은 이 조” 를 한 자리에서 읽게 하려는 것입니다. 전광판과 관리 화면 둘 다 그렇게 바뀝니다. 아직 코트가 안 정해진 조만 대기 줄에 남습니다.
끄더라도 이미 붙은 지정은 그대로 둡니다. 저절로 붙은 것과 관리자가 손으로 정해 준 것을 구분해 두지 않기 때문입니다 — 푸는 것은 관리 화면 대기 줄의 ‘○번 지정’ 딱지(코트 밑에 붙어 있을 때는 ‘풀기’)를 누르면 됩니다.
난타 코트가 다음 조로 넘어가는 주기입니다. 시간이 지나도 기다리는 난타 조가 있을 때만 넘깁니다 — 아무도 안 기다리면 그대로 더 칩니다(잘 치고 있는 두 사람을 빈 코트 앞에 세울 이유가 없습니다).
지금 치고 있는 난타는 건드리지 않습니다. 줄여 놓으면 이미 그만큼 친 조가 생기는데, 그 자리는 기다리는 조가 생기는 순간 넘어갑니다. 레슨 자리는 이 시간과 무관합니다 — 레슨에는 시간 제한이 없습니다.
회장·총무·회계는 각각 한 명으로 못 박혀 있습니다(바꾸려면 코드를 고쳐야 합니다). 스탭만 여기서 늘리고 줄입니다. 누구를 앉힐지는 회원관리 탭의 임원 칸에서 고릅니다.
지금 앉아 있는 사람보다 적게 줄이려 하면 막습니다 — 누구를 내릴지는 사람이 정해야 합니다.
관리 화면 휴게실에 [🤖 AI 매칭] 버튼이 생깁니다. 먼저 고른 사람이 있으면 그 사람들에 맞춰 나머지를 채우고, 아무도 안 골랐으면 넷을 통째로 짭니다. 추천 네 칸을 나란히 보여 주고 고르게 합니다 — 마음에 안 든다고 다시 돌리는 것보다 낫습니다. 앞의 셋은 점수 높은 순이고, 마지막 ‘실력 맞춤’ 칸은 넷이 전부 같은 등급인 조합입니다 (만들 수 없는 날에는 그 칸이 빠집니다). 조를 만들지는 않습니다 — 넷을 골라 줄 뿐이고, 확정은 사람이 [새 조 만들기] 를 누를 때입니다. 전광판에는 없습니다.
AI 모델을 쓰지 않습니다. 등급·판수·오늘 같이 뛴 사이, 이 셋으로 점수를 매겨 제일 나은 조합을 고를 뿐입니다 — 이름만 그렇게 붙였습니다. 등급을 안 매겨 둔 클럽에서 켜면 판수와 중복만으로 짭니다(그래도 씁니다).
등급 A~E 는 다섯 칸입니다. 칸 안에서 누가 더 잘하는지, 칸 경계에 걸친 사람이 어느 쪽인지는 알려 주지 않습니다. 그래서 경기 결과에서 개인 실력을 역산해 연속값으로 따로 쌓고 있습니다. 경기가 끝날 때마다 저절로 갱신되며, 어느 화면에도 나오지 않습니다.
처음 누르면 그것이 지난 경기 반영입니다. 이 기능을 붙이기 전에 친 경기도 기록은 남아 있어서, 그때 한꺼번에 들어옵니다. 언제 눌러도 결과가 같고, 지우는 것이 아니라 다시 만드는 것이라 되돌릴 것이 없습니다. 출석 기록이나 회원을 지운 뒤에는 한 번 눌러 주세요 — 지워진 사람이 낀 경기가 계산에서 빠지는데, 쌓아 둔 값은 그것을 모릅니다.
복식은 아주 천천히 여뭅니다. 한 판에 네 사람 정보가 섞여 들어와 개인이 가져가는 몫이 적습니다 — 단식보다 1.5~2배 더 많은 경기가 필요하고, 개인당 20~30경기는 있어야 쓸 만해집니다. 그때까지는 등급을 숫자로 옮겨 적은 것과 크게 다르지 않습니다. 그래서 안 보여 줍니다.
기록 탭의 승률 화면은 잘 친 사람만 짧게 겁니다. 전체를 줄 세워 공개하면 아래쪽 사람에게는 게시판이 아니라 성적표가 됩니다 — 각자 자기 기록은 회원관리에서 봅니다.
판수 기준을 낮게 두면 한 판 쳐서 이긴 사람의 10할이 스무 판 친 8할 위에 앉습니다 — 그 표는 아무도 믿지 않습니다. 등수가 동률로 걸치면 그 등수는 다 넣습니다(같은 성적인데 한 명만 잘리는 일이 없게). 정한 값은 화면 제목에 그대로 나옵니다.
경기가 끝나면 그때 들어와 있는 사람의 폰이 울립니다. 아래 시간대 밖에서는 한 통도 나가지 않습니다 — 평일 새벽에 시험 삼아 경기를 끝냈다고 온 회원 폰이 울리면, 그 한 번으로 다들 알림을 꺼 버립니다.
소리 크기 — 화면을 열어 둔 기기에서 페이지가 직접 내는 소리(농구 부저)의 크기입니다. 눌러 보면 그 자리에서 들려 줍니다.
⚠ 앱이 닫혀 있을 때 나는 알림음은 웹에서 바꿀 수 없습니다. 안드로이드는 알림 채널에 정해진 소리를 내고, 웹 푸시에는 소리 파일을 지정하는 수단이 없습니다 — 그래서 그때는 폰의 기본 알림음이 납니다. 우리가 정할 수 있는 것은 진동 패턴뿐이라, 부저처럼 길게 두 번 울리도록 해 두었습니다.
소리를 꼭 바꾸고 싶으면 각자 폰에서 한 번 정하는 방법이 있습니다:
안드로이드 → 설정 → 앱 → (이 앱 또는 Chrome) → 알림 →
openlab.ezintra.com 채널 → 소리 에서 원하는 알림음 선택.
(폰의 Notifications 폴더에 음원을 넣어 두면 그 목록에 나옵니다.)
앱을 닫은 상태는 15초 뒤 울리기 로만 시험할 수 있습니다.
누르고 바로 앱을 닫으세요 — 화면이 열려 있으면 페이지가 내는 소리와
알림이 내는 소리가 겹쳐서 어느 쪽이 울린 건지 알 수 없습니다.
닫은 채로 울리면 알림이 제대로 도착하는 것입니다.
경기를 마친 사람은 정해진 시간 동안 휴게실에 못 들어옵니다 — 많이 친 사람이 내려오자마자 다시 줄을 서면 적게 친 사람의 차례가 계속 밀리기 때문입니다. 켜고 끄는 스위치는 관리 화면 상단에 있고(사람이 몰리는 날 그 자리에서 켭니다), 여기서는 규칙만 정합니다.
단을 쌓아 정합니다 — 3경기 이상 5분, 4경기 이상 10분 처럼.
조건을 만족하는 단 중 경기 수가 가장 높은 단이 적용됩니다.
판수는 방금 친 경기까지 세어서 봅니다.
실제 운영은 일요일 저녁뿐입니다. 그 밖의 날(체험·시험 삼아 굴려 본 날)은 제출 대상이 아니므로 여기서 걷어냅니다. ‘일요일 아닌 날 전부’ 버튼이 그 일을 한 번에 합니다.
지운 하루와 경기는 휴지통에 30일 남습니다 — 그 안에는 되돌릴 수 있습니다. 누를 때마다 개발자 비밀번호를 다시 묻습니다.
아래에서 날짜를 눌러 펼치면 그날의 출석 한 명과 경기 한 판을 따로 지울 수 있습니다. 경기를 지우면 그 판 몫의 판수·승패도 함께 되돌아갑니다 — 승패를 반대로 눌렀을 때 쓰는 문입니다. 출석 한 줄만은 휴지통을 거치지 않습니다(되돌릴 것이 한 줄뿐이라, 잘못 지웠으면 그 사람이 다시 입장하면 됩니다).
체육관 문에 붙이는 A4 한 장입니다. 맨 위에 클럽 이름, 가운데에 QR, 그 아래 주소, 맨 아래에 사용법 다섯 줄이 들어갑니다. QR 을 찍으면 입장 화면이 열립니다.
주소는 밖에서 접속하는 주소여야 합니다. 지금 이 화면을 연 주소를
채워 두었습니다 — 집 안에서 NAS-IP:8091 로 열어 두고 뽑으면
체육관에서 안 열리는 QR 이 나옵니다. 그때는 아래 칸을 고치세요.
새 창으로 열립니다. 그 안의 ‘인쇄 / PDF로 저장’ 을 누르고, 인쇄 창에서 대상을 ‘PDF로 저장’ 으로 고르면 PDF 로 받습니다. 여백은 기본값, 배율은 100% 로 두세요.
지울 날짜를 고르세요. 그날의 출석과 경기 기록이 함께 갑니다.
지운 하루는 휴지통에 30일 남습니다. 그 안에는 되돌릴 수 있습니다.