Jamorham
Nightscout용 xDrip+ 버전
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
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