GymCoach
근력 트레이닝 기록 및 개인 AI 코치
자체 호스팅 단일 페이지 ICE 의료 정보 페이지로 손목 밴드·휴대폰 케이스 QR 코드에 사용
Self-hosted, single-page "In Case of Emergency" (ICE) medical info page for a QR code on a wristband, phone case, or wallet card — critical info shown instantly, sensitive details locked behind an unl
건강PHP · JavaScriptGitHub @MichelleFindlay온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Self-hosted, single-page "In Case of Emergency" (ICE) medical info page for a QR code on a wristband, phone case, or wallet card — critical info shown instantly, sensitive details locked behind an unlock word. (Demo unlocks using "demo")
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A single-page, self-hosted "In Case of Emergency" (ICE) medical info page, meant to be linked from a QR code on a wristband, phone case, or wallet card. Critical medical information (conditions, allergies, medications, blood type, DNR status, etc.) is shown immediately to anyone who opens the link — no login, no app, nothing to install — while your home address, phone numbers, and NHS/policy number stay hidden behind a private unlock word until someone who needs them types it in.
(Shown with the example placeholder data — see Setup below.)
The idea behind ICE (In Case of Emergency) contacts is old — it's normally just a contact named "ICE" in your phone.This does the same job but as a page a first responder can actually read without unlocking your phone: conditions, allergies, medications, and care team all in one place, reachable by scanning a QR code or going to a URL. With contact and sensitive information locked behind a simple word that is unique.
?testUpdateBanner=1 appended to
the URL.noindex/X-Robots-Tag
headers so the page doesn't turn up in search engines.index.php file plus a small vendored QR library.Copy this repo to any PHP-enabled web server (PHP 7.4+, no extensions
or database required — just session support, which is built in).
Copy each *.example.php file to the same name without .example, and
fill in real values:
| Copy this... | ...to this | Contains |
|---|---|---|
config.example.php | config.php | The unlock word, and the site's URL |
profile-data.example.php | profile-data.php | Everything shown openly (name, conditions, medications, care team, history) |
sensitive-data.example.php | sensitive-data.php | Address, phone numbers, NHS/policy number — gated behind the unlock word |
photo.example.png | photo.png | A photo shown in the header (optional — a fallback with your initials shows if it's missing) |
These four files are all gitignored, so your real data is never
committed. index.php itself never needs editing — it's just the
template — so a future update to it won't overwrite your content.
Deploy over HTTPS. The unlock word is a privacy screen against a casual glance, not a security boundary — see the security note below — and HTTPS keeps it from being visible in transit.
Visit the page, confirm the layout and unlock word work, then use the QR code generator button to get a scannable code for the page, or the Print card button to print a wallet-sized card with the URL and QR code on it. Put the QR code (or the printed card) on a wristband, phone case, or in a wallet.
config.php, profile-data.php, sensitive-data.php, and photo.png
are all gitignored. Double-check git status before committing if
you've renamed or restructured anything, so real personal data never
ends up in the repo.QR code generation uses qrcode-generator
by Kazuhiko Arase (MIT licensed), vendored in qrcode.lib.js so it runs
entirely client-side with no external requests.
GPL-3.0. See LICENSE.