BilliardsBoard

Nguyên mẫu · Android · Máy tính bảng

Bảng điểm bida đúng chuẩn thi đấu.

Một máy tính bảng treo cạnh bàn. Chạm để tính điểm carom hay pool, đồng hồ cú đánh tự chạy, mọi cú đều được quay lại, xem lại, và phát trực tiếp — không cần mạng, không cần tài khoản.

  • 7 thể loại
  • 100% offline
  • Quay & xem lại
  • Phát trực tiếp
  • 5 ngôn ngữ

Sản phẩm

Hai sản phẩm, một ngôn ngữ thiết kế

Cùng một mã nguồn, cùng bảng màu hổ phách trên nền than, hai bối cảnh khác nhau: bàn bida trong văn phòng và quán bida chuyên nghiệp.

Đang chạy · nguyên mẫu hoàn chỉnh

Office Board

Bảng điểm treo tường cho bàn bida văn phòng

  • Năm màn hình: Trang chủ, Cài đặt trận, Bảng carom, Bảng pool, Lịch sử
  • Bảy thể loại với lớp thi đấu đầy đủ
  • Quay theo phân đoạn, xem lại, phát trực tiếp, tải clip qua QR
  • Không mạng, không tài khoản, không đồng bộ — cắm điện là chạy
Đã thiết kế · nền tảng đã xây

Hệ thống quán

Điều khiển · Hiển thị · Kết hợp cho quán bida

  • Ba vai trò thiết bị: Control cho trọng tài, Display cho khán giả, Combined ở chế độ kiosk
  • Trạng thái trận đấu theo sự kiện — khôi phục sau sự cố, nhật ký, hoàn tác từ một cơ chế
  • Bốn luật chơi: carom 3 băng, libre, 9 bi, 10 bi
  • Sẵn sàng đồng bộ với outbox và UUID từ ngày đầu

Office Board

Mọi thứ Office Board làm được

Được thiết kế cho ngón tay ở khoảng cách một cánh tay: nút 45dp, chữ số Anton đọc được từ đầu bàn bên kia.

1 băng3 băngLibre9 Pool10 Pool15 Pool15 tự do
01Tính điểm

Bảy thể loại, hai bảng

Ba luật carom và bốn luật pool chạy trên hai bảng riêng: bảng carom theo lượt và seri, bảng pool theo ván và chạm.

02Thi đấu

Lớp thi đấu đầy đủ

Đồng hồ cú đánh ba vùng xanh–vàng–đỏ, lượt thêm giờ mỗi người, khởi động trước trận, điểm chấp và chọn người khai cuộc. Chế độ Nhanh tắt hết để chỉ tính điểm.

03Nhật ký

Hoàn tác là nút ngang hàng

Mỗi trận là một nhật ký hành động chỉ-thêm. Hoàn tác xoá dòng cuối và gấp lại; lượt, seri, cao nhất, bình quân và diễn biến đều rơi ra từ phép gấp đó — không có gì được đếm riêng để sai lệch.

04Video

Quay theo phân đoạn

CameraX ghi liên tục theo từng đoạn ngắn với bộ đệm cuộn 45 phút, nên bộ nhớ không bao giờ đầy và một đoạn lỗi không làm hỏng cả trận.

05Xem lại

Xem lại và nhảy tới điểm nổi bật

Màn hình Xem lại ghép các phân đoạn thành một dòng thời gian, đánh dấu từng cú ghi điểm để nhảy thẳng tới seri cao nhất hay cú lỗi gây tranh cãi.

06Trực tiếp

Phát trực tiếp lên YouTube, Facebook

Chia sẻ camera giữa ghi hình và bộ mã hoá, thanh điểm kiểu truyền hình vẽ đè lên khung hình, kết nối tài khoản hoặc RTMP tuỳ chỉnh ngay trong Cài đặt trận.

07Chia sẻ

Tải clip qua mã QR

Máy tính bảng tự chạy một máy chủ web nhỏ trên mạng nội bộ. Quét QR, chọn khoảng, clip được cắt từ phân đoạn và tải thẳng về điện thoại.

08Camera

Cấu hình camera

Camera trước, sau, webcam USB hay camera mạng RTSP; xem trước trực tiếp với độ trễ, độ phân giải, tốc độ khung, chụp thử và lưu mặc định.

09Lịch sử

Lịch sử và thẻ kết thúc trận

Mọi trận được lưu cục bộ với thẻ tổng kết, lọc carom/pool, chọn nhiều để xoá và sao lưu ra Downloads.

10vi · en · ko · es · zh

Năm ngôn ngữ

Tiếng Việt là gốc; tiếng Anh, Hàn, Tây Ban Nha và Trung được dịch đầy đủ và kiểm thử ngang bằng khoá — đổi ngay trong ứng dụng, không cần đổi hệ thống.

11Riêng tư

Kiosk, offline, không tài khoản

Chạy cố định ngang, giữ màn hình sáng, không có lớp mạng ngoài phát trực tiếp và chia sẻ clip. Không có gì để đăng nhập, không có gì để rò rỉ.

12Truy cập

Tương phản được kiểm thử

Mọi màu chữ đạt 4.5:1 trên mọi nền; bộ kiểm thử tỷ lệ tương phản chạy trong CI để không ai vô tình làm bảng khó đọc.

Màn hình

Các màn hình

Vẽ lại bằng CSS theo đúng bảng màu và kiểu chữ của ứng dụng.

Cài đặt trận đấuThể loại, chế độ, thời gian, người chơi và dòng đọc lại trước khi bắt đầu.
Xem lạiDòng thời gian phân đoạn, điểm nổi bật, và chân trang chia sẻ clip qua QR.
Cấu hìnhNguồn camera, xem trước trực tiếp, tài khoản phát trực tiếp và ngôn ngữ.

Hệ thống quán

Hệ thống quán bida

Một chương trình lớn hơn được chia thành chín tiểu dự án, xây dựng theo thứ tự trên cùng nền móng.

Trạng thái: thiết kế đã duyệt, nền tảng (module, Hilt, hệ thống thiết kế, bộ kiểm thử) đã hoàn tất. Các mục dưới mô tả thiết kế, không phải tính năng đã phát hành.

01Vai trò

Ba vai trò thiết bị

Control cho trọng tài, Display chỉ đọc cho TV khán giả, và Combined — một Control vẽ bố cục bảng ở chế độ kiosk. Khoá kiosk đổi vai trò, không đổi quyền.

02Sự kiện

Trạng thái theo sự kiện

Mọi hành động tính điểm và đồng hồ là một sự kiện bất biến. Khôi phục sau sự cố, nhật ký kiểm toán, hoàn tác và lớp điểm trên video đều là một cơ chế, không phải bốn.

03Luật

Bốn luật chơi thuần Kotlin

Carom 3 băng, libre, 9 bi, 10 bi sau một giao diện; ảnh chụp luật được đóng băng khi bắt đầu trận nên đổi cấu hình không bao giờ sửa trận đã chơi.

04Video

Ghi hình và phát lại có lớp điểm

Ghi theo phân đoạn với dịch vụ nền và kiểm tra dung lượng; Media3 phát lại ánh xạ thời gian video sang sự kiện để nhảy tới cú bất kỳ.

05Display

Bảng TV qua mạng nội bộ

Ứng dụng Display nhận trạng thái theo thời gian thực qua LAN, tự kết nối lại, và không bao giờ lộ nút sửa điểm.

06Đồng bộ

Sẵn sàng đồng bộ

UUID cho mọi bản ghi và bảng outbox ghi cùng giao dịch từ ngày đầu — bộ đồng bộ chỉ còn việc xả hàng đợi khi máy chủ xuất hiện.

Kiến trúc

Kiến trúc

Kotlin đa module với ranh giới được chính bản build kiểm tra, miền tính điểm thuần Kotlin, và một hệ thống thiết kế dùng chung.

Bản đồ module

  1. appapp-officeapp-controlapp-display
  2. featurefeature:officeboardfeature:matchfeature:scoreboard
  3. domaindomain:officedomain:scoring (Kotlin thuần)
  4. datadata:officedata:live
  5. corecore:designsystemcore:commoncore:databasecore:testing

Năm quy tắc build tự bảo vệ

  1. 1domain:* là java-library thuần — không Android, không Hilt, không Compose
  2. 2core:* không được phụ thuộc feature:* hay app-*
  3. 3feature:* không được phụ thuộc feature:* khác
  4. 4Không gì được phụ thuộc app-*
  5. 5data:* không được phụ thuộc feature:* hay app-*

gradle.projectsEvaluatedIllegal module dependency

Công nghệ

Kotlin 2.1 · Jetpack Compose

Màn hình không trạng thái, testTag trên mọi điều khiển, chủ đề OfficeBoardTheme / BilliardsTheme.

Room · Hilt

Nhật ký hành động chỉ-thêm (schema v2), DI theo module, di trú v1→v2 có kiểm thử.

CameraX · Media3

Ghi theo phân đoạn, phát lại, chia sẻ camera giữa ghi hình và phát trực tiếp.

RootEncoder · RTMP

Mã hoá phần cứng và đẩy luồng tới YouTube, Facebook hay máy chủ tuỳ chỉnh.

NanoHTTPD · ZXing

Máy chủ web nội bộ cho tải clip, mã QR hiển thị trên bảng.

Kiểm thử

JVM cho miền và tương phản, Compose và Room trên thiết bị, kiểm thử ngang bằng bản dịch.

Hỏi đáp

Hỏi đáp

Những câu thường gặp về bảng điểm bida điện tử này.

Ứng dụng có cần Internet không?

Không. Office Board chạy hoàn toàn offline: tính điểm, quay, xem lại và lịch sử đều nằm trên máy tính bảng. Chỉ phát trực tiếp và tải clip qua QR mới dùng mạng, và tải clip chỉ cần Wi‑Fi nội bộ.

Bảng điểm hỗ trợ những thể loại bida nào?

Carom 1 băng, carom 3 băng, libre, pool 9 bi, 10 bi, 15 bi và 15 bi tự do. Hệ thống quán được thiết kế cho carom 3 băng, libre, 9 bi và 10 bi.

Đồng hồ cú đánh hoạt động ra sao?

Ở chế độ Thi đấu, mỗi cú có thời gian đếm ngược tuỳ chỉnh, mỗi người có số lượt thêm giờ, và có khởi động trước trận. Thanh đồng hồ đổi xanh–vàng–đỏ để cả bàn nhìn thấy.

Có xem lại được cú đánh vừa rồi không?

Có. Video được ghi liên tục theo phân đoạn với bộ đệm 45 phút. Màn hình Xem lại đánh dấu từng cú ghi điểm để nhảy thẳng tới, và có thể cắt clip tải về điện thoại qua mã QR.

Phát trực tiếp lên đâu?

YouTube, Facebook (trang) hoặc bất kỳ máy chủ RTMP tuỳ chỉnh nào. Thanh điểm kiểu truyền hình được vẽ đè lên khung hình nên người xem luôn thấy tỷ số.

Chạy trên thiết bị nào?

Máy tính bảng Android 11 trở lên (minSdk 30), cố định ngang, phù hợp treo tường cạnh bàn. Có thể dùng camera trong, webcam USB hoặc camera mạng RTSP.

Ứng dụng có những ngôn ngữ nào?

Tiếng Việt, Anh, Hàn, Tây Ban Nha và Trung; đổi trực tiếp trong màn hình Cấu hình mà không cần đổi ngôn ngữ hệ thống.