GymCoach
근력 트레이닝 기록 및 개인 AI 코치
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기iPhone-first wellness tracker: AI food logging from photos, lifting and cardio plans, weight goals. Next.js 16, Supabase, Gemini; built with Claude Code.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A wellness tracker for weight, food, lifting and cardio. An iPhone-first web app (installable PWA) I use every day: log meals by photo or description with AI-estimated calories and macros, follow a weekly lifting and cardio plan, and track weight against a target with a projected goal date.
Live: wellness-tracker-virid.vercel.app: tap Try the demo to look around with sample data, no sign-up needed · Status: in daily use
I built DEVELOP with Claude Code as an AI pair programmer, starting as a beginner in web development. I owned the product and the decisions:
The working rules for the AI are versioned in the repo (CLAUDE.md), alongside the code they shaped.
| Layer | Choice | Why |
|---|---|---|
| UI and server | Next.js 16 (App Router), React 19 Server Components and Server Actions, TypeScript | One codebase; data access and secrets stay on the server |
| Styling | Tailwind CSS v4 with named color tokens | Consistent theme; mobile-first with 44px+ tap targets and safe-area insets |
| Database and auth | Supabase: Postgres, row-level security, Google sign-in | Real relational data; the database itself enforces who can see what |
| AI | Google Gemini (server-side only), JSON schema output, raced model chain | Photo and text nutrition estimates on the free tier |
| Hosting and CI | Vercel (Node 24), GitHub Actions, Dependabot | Every pull request is checked; every merge to main deploys |
Data model: 13 tables (profiles, food entries, saved foods, water, weigh-ins, workout days / exercises / sessions / sets, cardio, tanning, AI request log, demo state), each created by a versioned SQL migration in supabase/migrations/.
| Feature | How |
|---|---|
| Food from a photo | The photo is shrunk to 768px on the phone as soon as it's picked, sent to Gemini with a JSON schema, validated and range-checked, and fills an editable form; nothing saves on its own |
| Food from text | Same pipeline from a plain description ("2 eggs and buttered toast") |
| Speed | Fastest free models first with minimal thinking; if one hasn't answered in 1.5 s a backup starts alongside it and the first answer wins. Measured: 12.5 s → 1.3–2.5 s |
| Reliability | Overloaded or retired models fall through to the next, a bad key stops at once, per-model timeouts and a total time budget |
| Weight coaching | A one-line note, regenerated only when the numbers it was written for change |
| Cost control | A 40-a-day limit per person, logged in Postgres before the AI is called |
main (pull requests only, required checks, linear history, no force-push), secret scanning with push protection, CodeQL code scanning, Dependabot alerts and security updates, and GitHub Actions pinned to commit SHAs. See SECURITY.md to report a problem.lib/ with tests; pages and components stay thin. Streaks, goal status, the weight plan and AI reply validation are all plain functions.Requires Node.js 24 (see .nvmrc, the version production runs) and a free Supabase project.
npm install.env.example to .env.local and fill in NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY and GEMINI_API_KEY (a free key from Google AI Studio).supabase/migrations/ in order in the Supabase SQL Editor, and enable Google sign-in.npm run dev and open http://localhost:3000npm test runs the unit tests; npm run build makes a production build.
supabase/migrations/20261025000000_recruiter_demo.sql in the SQL Editor (after the earlier migrations).[email protected] with a strong password and Auto Confirm User on.[email protected] and DEMO_PASSWORD=… in .env.local and in Vercel (mark the password Sensitive), then redeploy. The Try the demo button appears once both are set.Shipped: PWA shell and deploy, Google sign-in, food log with macro goals, AI text and photo estimates, streaks, workouts, cardio, water, the Weight tab with an AI coaching note, and the DEVELOP rename with a launch splash.
Next: polish and real-iPhone testing of photo logging, scroll wheels and checkboxes.