BilliardScoreBoard

프로토타입 · Android · 태블릿

경기 규칙 그대로의 당구 점수판.

당구대 옆 벽에 태블릿 하나. 터치로 캐롬이나 포켓볼 점수를 매기고, 샷 클록은 알아서 돌아가며, 모든 샷이 녹화되고 리플레이되고 스트리밍됩니다 — 네트워크도 계정도 필요 없습니다.

  • 7개 종목
  • 100% 오프라인
  • 녹화 & 리플레이
  • 라이브 스트리밍
  • 5개 언어

제품

두 제품, 하나의 디자인 언어

하나의 코드베이스, 하나의 차콜 위 앰버 팔레트, 두 가지 무대: 사무실의 포켓볼 테이블과 전문 당구장.

실행 중 · 완성된 프로토타입

Office Board

사무실 당구대를 위한 벽걸이 점수판

  • 다섯 화면: 홈, 경기 설정, 캐롬 보드, 포켓볼 보드, 기록
  • 완전한 경기 레이어를 갖춘 7개 종목
  • 분할 녹화, 리플레이, 라이브 스트리밍, QR 클립 다운로드
  • 네트워크·계정·동기화 없음 — 전원만 꽂으면 끝
설계 완료 · 기반 구축됨

당구장 시스템

당구장을 위한 Control · Display · Combined

  • 세 가지 기기 역할: 심판용 Control, 관중용 Display, 키오스크 모드의 Combined
  • 이벤트 소싱 경기 상태 — 충돌 복구, 감사 로그, 되돌리기가 하나의 메커니즘
  • 네 가지 룰 엔진: 3쿠션 캐롬, 프리, 9볼, 10볼
  • 첫날부터 아웃박스와 UUID로 동기화 준비 완료

Office Board

Office Board가 하는 모든 것

팔 길이 거리의 손가락을 위한 설계: 45dp 컨트롤과 테이블 반대편에서도 읽히는 Anton 숫자.

1쿠션3쿠션프리9볼10볼15볼15볼 프리
01채점

7개 종목, 두 개의 보드

세 가지 캐롬 룰과 네 가지 포켓볼 룰이 전용 보드 두 개에서 돌아갑니다: 캐롬 보드는 이닝과 시리즈를, 포켓볼 보드는 랙과 레이스를 셉니다.

02경기

완전한 경기 레이어

녹색–앰버–빨강 3구간 샷 클록, 선수별 연장, 경기 전 워밍업, 핸디캡과 브레이크 선택. 퀵 모드는 이 모두를 끄고 점수만 셉니다.

03액션 로그

되돌리기는 채점과 동급

각 경기는 추가 전용 액션 로그 하나입니다. 되돌리기는 마지막 행을 지우고 다시 접습니다. 이닝, 시리즈, 하이런, 애버리지, 경기 흐름이 모두 그 접기에서 나옵니다 — 따로 세어 어긋날 것이 없습니다.

04비디오

분할 녹화

CameraX가 짧은 세그먼트로 계속 녹화하며 45분 롤링 버퍼를 유지하므로 저장 공간이 차지 않고, 세그먼트 하나가 잘못돼도 경기 전체를 망치지 않습니다.

05리플레이

리플레이와 하이라이트 점프

리플레이 화면은 세그먼트를 하나의 타임라인으로 잇고 득점 샷마다 표시하여, 하이런이나 논란의 파울로 곧장 건너뜁니다.

06라이브

YouTube·Facebook 라이브 스트리밍

카메라를 녹화와 인코더가 공유하고, 방송 스타일 점수 바가 프레임 위에 그려지며, 계정이나 사용자 지정 RTMP 대상을 경기 설정에서 바로 연결합니다.

07공유

QR 코드로 클립 다운로드

태블릿이 로컬 네트워크에 작은 웹 서버를 띄웁니다. QR을 스캔하고 구간을 고르면 세그먼트에서 클립을 잘라 휴대폰으로 바로 내려받습니다.

08카메라

카메라 설정

전면, 후면, USB 웹캠 또는 RTSP 네트워크 카메라; 지연 시간·해상도·프레임 속도가 표시되는 실시간 미리보기, 테스트 촬영, 기본값 저장.

09기록

기록과 경기 종료 카드

모든 경기가 요약 카드와 함께 로컬에 저장되며, 캐롬/포켓볼 필터, 다중 선택 삭제, Downloads로 백업 내보내기를 지원합니다.

10vi · en · ko · es · zh

5개 언어

베트남어가 원본이며 영어, 한국어, 스페인어, 중국어가 완전히 번역되고 키 일치 테스트를 거칩니다 — 시스템 설정 변경 없이 앱 안에서 전환합니다.

11프라이버시

키오스크, 오프라인, 계정 없음

가로 고정, 화면 항상 켜짐, 스트리밍과 클립 공유 외에는 네트워크 레이어가 없습니다. 로그인할 것도, 유출될 것도 없습니다.

12접근성

테스트된 대비

모든 텍스트 색이 모든 배경에서 4.5:1을 넘습니다. 대비 비율 테스트 스위트가 CI에서 돌아가므로 누구도 실수로 보드를 읽기 어렵게 만들 수 없습니다.

화면

화면

앱의 정확한 팔레트와 서체로 CSS로 다시 그렸습니다.

경기 설정종목, 모드, 시간, 선수, 그리고 시작 전 확인 문구.
리플레이세그먼트 타임라인, 하이라이트, QR 클립 공유 푸터.
설정카메라 소스, 실시간 미리보기, 스트리밍 계정과 언어.

당구장 시스템

당구장 시스템

아홉 개의 하위 프로젝트로 나뉜 더 큰 프로그램을 같은 기반 위에 순서대로 쌓아 올립니다.

상태: 설계 승인됨; 기반(모듈, Hilt 그래프, 디자인 시스템, 테스트 하네스)은 완료. 아래 항목은 출시된 기능이 아니라 설계를 설명합니다.

01역할

세 가지 기기 역할

심판용 Control, 관중 TV용 읽기 전용 Display, 그리고 키오스크 모드로 보드 레이아웃을 그리는 Control 인스턴스인 Combined. 키오스크 잠금은 권한이 아니라 역할을 바꿉니다.

02이벤트

이벤트 소싱 경기 상태

모든 채점과 클록 동작은 불변 이벤트입니다. 충돌 복구, 감사 로그, 되돌리기, 재생 점수 오버레이가 넷이 아닌 하나의 메커니즘입니다.

03규칙

순수 Kotlin 룰 엔진 네 개

하나의 인터페이스 뒤에 3쿠션 캐롬, 프리, 9볼, 10볼; 룰셋 스냅샷이 경기 시작 시 고정되어 설정 변경이 이미 치른 경기를 바꾸지 않습니다.

04비디오

점수 오버레이가 있는 녹화와 재생

저장 공간 가드가 있는 포그라운드 서비스의 분할 녹화; Media3 재생이 비디오 시간을 이벤트에 매핑해 어떤 샷으로든 건너뜁니다.

05Display

LAN을 통한 TV 보드

Display 앱은 로컬 네트워크로 실시간 상태를 받고, 스스로 재연결하며, 점수 수정 컨트롤을 절대 노출하지 않습니다.

06동기화

동기화 준비 완료

모든 레코드에 UUID, 첫날부터 같은 트랜잭션에 기록되는 아웃박스 테이블 — 서버가 생기면 동기화 엔진은 큐만 비우면 됩니다.

FAQ

자주 묻는 질문

이 디지털 당구 점수판에 대해 자주 묻는 질문입니다.

앱에 인터넷 연결이 필요한가요?

아니요. Office Board는 완전 오프라인입니다: 채점, 녹화, 리플레이, 기록이 모두 태블릿 안에 있습니다. 라이브 스트리밍과 QR 클립 다운로드만 네트워크를 쓰며, 클립 다운로드는 로컬 Wi‑Fi만 있으면 됩니다.

어떤 당구 종목을 지원하나요?

1쿠션 캐롬, 3쿠션 캐롬, 프리, 9볼, 10볼, 15볼, 15볼 프리 포켓볼. 당구장 시스템은 3쿠션 캐롬, 프리, 9볼, 10볼용으로 설계되었습니다.

샷 클록은 어떻게 작동하나요?

경기 모드에서는 샷마다 설정 가능한 카운트다운이 있고, 선수마다 연장 횟수가 있으며, 경기 전 워밍업이 있습니다. 클록 바가 녹색, 앰버, 빨강으로 바뀌어 테이블 전체가 볼 수 있습니다.

마지막 샷을 다시 볼 수 있나요?

네. 비디오는 45분 버퍼로 세그먼트 단위로 계속 녹화됩니다. 리플레이 화면은 득점 샷마다 표시해 바로 건너뛸 수 있고, 클립을 잘라 QR 코드로 휴대폰에 내려받을 수 있습니다.

어디로 라이브 스트리밍할 수 있나요?

YouTube, Facebook 페이지, 또는 어떤 사용자 지정 RTMP 서버든 가능합니다. 방송 스타일 점수 바가 프레임 위에 그려져 시청자가 항상 점수를 봅니다.

어떤 기기에서 실행되나요?

Android 11 이상 태블릿(minSdk 30), 가로 고정, 당구대 옆 벽걸이에 적합합니다. 내장 카메라, USB 웹캠, RTSP 네트워크 카메라 모두 사용할 수 있습니다.

어떤 언어를 지원하나요?

베트남어, 영어, 한국어, 스페인어, 중국어; 시스템 언어를 바꾸지 않고 설정 화면에서 바로 전환합니다.