尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Event check-in and points app for Seattle Men in Leather. Members scan a QR code, sign in with TidyHQ, and check in with one tap. Built with Claude Code.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Event check-in and points tool for Seattle Men in Leather (SML). TidyHQ is the system of record; this app is a thin layer on top of it.
Status: running on mock TidyHQ, live TidyHQ planned (1.0.0).
https://sml-checkin-demo-mh-bmewe4c2bdendfhv.westus3-01.azurewebsites.net
The /demo page walks through every feature, with who to sign in as for each
scenario. The demo data resets whenever the server restarts.
| Check in | Member status | Admin attendee list |
|---|---|---|
| One tap to check in at the door. | Membership, points and recent events. | Live attendee list and QR code for an event. |
The full list of rules is in the Invariants in CLAUDE.md.
Next.js 16, React 19, TypeScript, Tailwind CSS 4, Vitest, Playwright, and Azure App Service deployed from GitHub Actions with OIDC.
Requires Node 24 (see .nvmrc).
npm install # install dependencies
cp .env.example .env.local # required: local settings
openssl rand -base64 32 # generate a value for SESSION_SECRET
npm run dev # dev server at http://localhost:3000
Put the generated value in .env.local as SESSION_SECRET. Sign-in needs it
even in mock mode. Once the server is running, open
http://localhost:3000/demo to see who to sign in as.
The client is chosen by TIDYHQ_MODE (mock, the default, or live).
src/lib/tidyhq/mock/seed.ts). Data resets whenever the server restarts.
A production server refuses mock mode unless DEMO_MODE=on, which puts a
"Demo data" banner on every page..env.example is filled in. See the
go-live checklist.npm test # run the test suite once
npm run test:watch # re-run tests on file changes
npm run typecheck # TypeScript type check
npm run lint # ESLint
npm run format:check # Prettier check
npx playwright install # one-time: downloads the WebKit and Chromium browsers
npm run test:e2e # builds the app and runs the specs in e2e/
npx playwright show-report # open the HTML report (after a CI-mode run)
playwright.config.ts sets E2E=1, which turns on POST /mock-tidyhq/reset
(mock mode only). Don't set it anywhere else.
.claude/rules/: scope, design
decisions and the detailed rules.docs/plans/: one plan per milestone, with status.docs/azure-demo.md: the Azure demo host and deploys.Versioning is described in CLAUDE.md; releases are on GitHub Releases.
SML Check-in is built with Claude Code. I'm on the SML Board and act as the product owner: I set the requirements, made the design and security decisions, reviewed every plan and pull request, tested on real phones, and run the releases and the Azure demo. Claude Code wrote the code, tests and docs under the project rules in CLAUDE.md, which also record the reasoning behind each decision.
Bug reports and ideas are welcome as issues. Pull requests aren't being accepted for now, because the app is built and maintained for SML. To report a security problem, see SECURITY.md.
Apache 2.0, copyright Seattle Men in Leather. The SML name and logos are not covered by the license. See NOTICE.