ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A modern quiz bowl platform for scoring, tournament management, and live tournament experiences with QBLive.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
QBSheet is an offline-first electronic scoresheet for quiz bowl. It runs entirely in a web browser.
You can use QBSheet to score a game from a QBJ file. You can also connect it to tournament-control software with QBTCP. For practices and scrimmages, you can create a game directly in QBSheet.
QBSheet works as a website or an installable PWA. Standalone scoring does not require an account, a database, or an internet connection.檢視完整 README ↗QBSheet is an offline-first electronic scoresheet for quiz bowl. It runs entirely in a web browser.
You can use QBSheet to score a game from a QBJ file. You can also connect it to tournament-control software with QBTCP. For practices and scrimmages, you can create a game directly in QBSheet.
QBSheet works as a website or an installable PWA. Standalone scoring does not require an account, a database, or an internet connection.
The repository also includes QBSheet Director, the desktop tournament-control application. It is a
separate application under apps/director with its own Vite config and Tauri shell,
and it is not part of the website: the deployed site has no URL that launches tournament control. See
running Director below, and the product page at /about/director/.
| What it is | |
|---|---|
| QBSheet Web / Scorer | The browser scoresheet. Offline-first, no account, QBTCP client. |
| QBSheet Director | The desktop tournament-management application. Authoritative tournament state, local SQLite, QBTCP server. |
| QBSheet Live | The participant-facing half: a native iOS app, an App Clip, a responsive web client, and an open protocol for publishing a tournament. |
The website carries the scorer plus a marketing page for each of the other two, at /about/director/
and /about/qblive/. Director is installed on the tournament-control computer; QBSheet Live Web is
served from live.qbsheet.com. Neither runs on the QBSheet website.
Director runs the tournament. Live publishes the tournament.
QBSheet Live is entirely optional and is never required for scoring, QBTCP, scheduling, result acceptance, advancement, statistics, recovery, or persistence. If the internet disappears mid-day, the tournament continues normally and Live catches up afterwards. A tournament's public data lives in the tournament director's own infrastructure — QBSheet does not host it and does not pay for it.
See the QBSheet Live architecture and the QBLive protocol.
There are three primary ways to start a game.
Open a QBJ assignment or tournament file.
If the file contains more than one game, select the game that you want to score.
After the game, export the result as a QBJ file.
QBSheet can also read legacy .qbg files for compatibility.
QBSheet can connect to tournament-control software that supports QBTCP.
Enter the tournament server address. Pair the room with the server. QBSheet can then receive game assignments and send results to the tournament system.
QBSheet also keeps local recovery data on the device.
For protocol information, see QBTCP.
You do not need a tournament system to use QBSheet.
Select Create game. Enter the two teams, the players, and the scoring rules. You can then start the game.
This mode is useful for practices, scrimmages, tryouts, and pickup games.
Created games use the same scorer, corrections, recovery features, and QBJ export as other QBSheet games.
QBSheet uses two standards for interoperability.
QBTCP uses QBJ for game data. File-based games and connected games therefore use the same game format.
QBSheet requires Node.js 22 or later.
git clone https://github.com/gbyo/qbsheet.git
cd qbsheet
npm ci
npm start
Vite starts the local development server.
Director is a separate application and does not run from the root Vite server.
npm run director:dev # the Director user interface, on http://127.0.0.1:1420
npm run director:tauri:dev # the real desktop application, with its native storage and QBTCP server
npm run director:build # typecheck and build the Director frontend
npm run director:test # the Director shell's own suite
The local QBTCP listener and the durable tournament store exist only in the native shell, so the
browser-served user interface can plan a tournament but cannot run one. See
apps/director/README.md.
Run these checks before you submit a change:
npm run lint
npm run typecheck
npm test -- --run
npm run build
QBSheet Live has its own suites. The Cloudflare and iOS ones need workerd and Xcode, so they run in
a separate workflow rather than in the main gate:
npm run qblive:test # protocol, public projection privacy, Live Activity payloads, conformance
npm run live:test # QBSheet Live Web
npm run live:dev # QBSheet Live Web against a running backend
Run the browser end-to-end tests with:
npm run test:browser
For more development information, see CONTRIBUTING.md.
QBSheet builds as a static site. You can host it on GitHub Pages, Cloudflare Pages, or another static host.
Build the production version with:
npm ci
npm run build
The build output is in dist/.
QBSheet uses relative asset paths by default. The same build can work at a domain root, in a repository path, or from a local copy.
Set BASE_PATH if the deployment requires a specific base path:
BASE_PATH=/qbsheet/ npm run build
The service worker provides the application shell for offline use.
Director is not part of that build. It is a desktop application, released per platform from a
director-v* tag by .github/workflows/director-release.yml; see
Director releases.
| Document | Description |
|---|---|
| QBTCP | Protocol for communication with tournament-control software |
| QBJ assignment profile | How QBSheet reads and writes QBJ |
| Transfers | Moving assignments and results by USB, folders, and downloads |
| QBG migration | Compatibility information for the older QBG and API formats |
| Spreadsheet clipboard | Copy one complete game into a shared tournament spreadsheet |
| Test file generation | Information about test files and development fixtures |
| QBSheet Live architecture | How Live fits together, and the canonical domain decision |
| QBLive protocol | The normative public protocol for publishing a tournament |
| QBSheet Live for iOS | iOS targets, universal links, App Store Connect checklist |
| Live Activity | ActivityKit sharding and measured broadcast payload sizes |
| APNs prototype result |
Bug reports, tournament testing, documentation, and code contributions are welcome.
Read CONTRIBUTING.md before you open a pull request.
The Code of Conduct applies to project participation.
Report security problems as described in SECURITY.md. Do not report a security problem in a public issue.
QBSheet is available under the GNU Affero General Public License version 3 or later.
QBSheet includes work derived from the YellowFruit project. See NOTICE.md for attribution and project history.
| What was measured about reaching Apple's push endpoints |
| Live load results | WebSocket load, and APNs channel-consumption modelling |
| Live verification status | What is demonstrated, what is tested, and what is not |
| Director releases | How Director is versioned, built per platform, and published |