Skip to content

Repository files navigation

Timed Fit

Timed Fit is a fitness app: athletes follow ready-made, timed exercise routines; admins manage the exercise library and training plans. Access is a small monthly subscription (billing is not implemented yet — treat it as a future entitlement, not a role).

This repository is the monorepo: GraphQL API, Expo mobile app, admin CRM, and shared Supabase client and migrations.

Structure

  • apps/
    • graphql-server — Node.js GraphQL API (Apollo Server 5 on Express). Supabase via @timed-fit/supabase-client. GET /health, POST /graphql.
    • mobile — React Native (Expo) for ATHLETE users. GraphQL only.
    • admin — Vite React SPA for ADMIN users. GraphQL only. S3 + CloudFront.
  • packages/
    • supabase-client — typed Supabase client for server-side use
    • supabase-migrations — Supabase CLI config, auth, and DB migrations
    • tsconfig — base TypeScript configs

See ARCHITECTURE.md for data flow, AGENTS.md for AI/agent guidance, and wiki/index.md for product/business context.

Prerequisites

  • Node.js 21.x (CI uses 21.7.3)
  • pnpm 9.14.x (packageManager in package.json)
  • Supabase CLI (link to staging for migrations and type generation)

This project does not use NX Cloud (neverConnectToCloud in nx.json).

Setup

pnpm install

Copy env examples:

  • apps/graphql-server/.env.example.env.local
  • apps/mobile/.env.example
  • apps/admin/.env.example

Commands

Command Description
pnpm nx run graphql-server:serve Start the GraphQL server (port 4000)
pnpm nx run mobile:start Start the Expo app
pnpm nx run admin:serve Start the admin Vite app
pnpm nx run supabase-migrations:db-push Push migrations to the linked Supabase project
pnpm nx run supabase-migrations:gen-types Generate TypeScript types into supabase-client
pnpm nx run-many -t build Build all buildable projects

CI and pull requests

Pull requests targeting main or develop run app-specific checks when relevant paths change:

Workflow Role on PRs
supabase-pr.yml db push --dry-run (no apply)
graphql-pr.yml Build, typecheck, test, Docker build (no push)
mobile-pr.yml Typecheck and test (no EAS)
admin-pr.yml Typecheck and test (no S3)
pr-labels.yml Path labels

Deploys are manual via release.yml on develop (staging) or main (production): Supabase db-push, GraphQL Docker → ECR → ECS Express Mode, admin S3 + CloudFront, optional EAS mobile.

See docs/aws-ecs-express.md for GraphQL AWS setup.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages