smooth-app
전 세계 식품의 성분·영양·정보를 자유롭게 협업하고 공개하는 데이터베이스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A bilingual (Arabic/English) fitness & health tracking web app — workouts with
voice-guided coaching, nutrition logging, progress analytics, and a
subscription system that unlocks AI-powered features.
Real accounts, sessions, and per-user data are backed by a Postgres database
(Neon) through Vercel serverless functions under /api.README 전문 보기 ↗A bilingual (Arabic/English) fitness & health tracking web app — workouts with voice-guided coaching, nutrition logging, progress analytics, and a subscription system that unlocks AI-powered features.
Real accounts, sessions, and per-user data are backed by a Postgres database
(Neon) through Vercel serverless functions under /api.
PremiumGate componentnpm install
npm run dev
The /api serverless functions require a DATABASE_URL (or POSTGRES_URL)
environment variable pointing at a Postgres database — they won't run without
it. On Vercel, connect a Postgres integration (e.g. Neon) under the project's
Storage tab; locally, set it in a .env file and use vercel dev to run the
functions alongside Vite.
GEMINI_API_KEY on the server for coaching, training/nutrition plans,
and AI reminders. GEMINI_MODEL can override the default gemini-3.8-flash
with a model available to your Google project. GOOGLE_API_KEY is also
accepted as a compatibility fallback. Both chat and plans share the same
client, a 50-second provider timeout, and explicit configuration/service
errors. Never expose these variables through a VITE_ prefix.npm run dev serves
the frontend only; use vercel dev with your database and server environment
for live authenticated integration testing.GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET, and the
OAuth callback /api/fit?action=callback on the deployed origin. Existing
connections must be disconnected/reconnected to grant the new heart-rate
and location permissions. The Google project/API and the connected device
must actually supply the requested data. Missing readings remain unavailable,
not synthetic zeroes; optional sensor failures do not disable steps/calories.estimated_steps source) and one broken reading never blanks the others.
Settings explains when a reconnect with all permissions is needed. A revoked
refresh token (invalid_grant) clears the stored connection and asks the
user to reconnect instead of showing a connected-but-dead state, and the
connect/disconnect buttons show a loader for the whole round-trip.npm test
npm run lint
npm run build
npx tsc -p tsconfig.api.json
Unit tests cover local-day streak boundaries, active-calorie estimates, sensor aggregation/unavailable readings, shared Gemini configuration and errors, and Arabic/English key parity, in addition to existing calculation/voice/pose tests.