尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证ProtocolOS - offline-first fitness PWA: 82 exercises, WOD timer, nutrition via Open Food Facts
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
An offline-first fitness PWA — training plans, progressive-overload coaching, CrossFit WODs, and nutrition tracking — built entirely in vanilla JavaScript with zero backend.
ProtocolOS is a complete personal training system that runs 100% in the browser. All data lives in localStorage, the service worker keeps it working with no connection, and it installs to the home screen like a native app. The UI is in Hebrew (full RTL support).查看完整 README ↗An offline-first fitness PWA — training plans, progressive-overload coaching, CrossFit WODs, and nutrition tracking — built entirely in vanilla JavaScript with zero backend.
Live app: flowopsai.co.il/fitness_app
ProtocolOS is a complete personal training system that runs 100% in the browser. All data lives in localStorage, the service worker keeps it working with no connection, and it installs to the home screen like a native app. The UI is in Hebrew (full RTL support).
A rule-based coaching engine analyzes each exercise's logged history and tells the user what to do next:
| Layer | Choice |
|---|---|
| Language | Vanilla JavaScript (ES modules) — no framework |
| Offline | Service Worker + Cache Storage |
| Persistence | localStorage only — no backend, no accounts, no tracking |
| External APIs | Open Food Facts (food search), Claude API (optional, user-keyed) |
| Build | Vite + Terser minification |
| Testing | Vitest — pure logic extracted to src/pure.js for unit testing |
| CI/CD | GitHub Actions: test, then build and deploy to GitHub Pages on every push to main |
| Hosting | GitHub Pages behind a custom domain |
sw.js): network-first for the app shell (HTML/JS/CSS) so users always get fresh code when online, with cache fallback when offline; cache-first for static assets (icons, fonts). Old caches are purged on activation and open clients are notified via postMessage when a new version is live.localStorage keys. The result: zero hosting cost beyond static files, instant loads, and complete data privacy.src/pure.js, covered by Vitest and gated in CI before deploy.npm ci
npm run dev # Vite dev server on port 3000
npm test # Vitest unit tests
npm run build # production build to dist/
ISC