FitForge — bilingual fitness & health tracking, workouts, nutrition and AI coaching.
Translation pending
HealthTypeScript · CSSGitHub @hamid-tlailiaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.