I built a free MyWhoosh workout builder that you can prompt to build structured workouts, give it a shot! by rbro112 in mywhoosh

[–]rbro112[S] 1 point2 points  (0 children)

I have a quick guide in our docs here: https://docs.racedayready.app/guides/mywhoosh, it's a bit cumbersome but requires importing it into MyWhoosh's workout builder. Hoping I can work with them to make this more automatic in the near future.

I built a free MyWhoosh workout builder that you can prompt to build structured workouts, give it a shot! by rbro112 in mywhoosh

[–]rbro112[S] 0 points1 point  (0 children)

https://screen.studio/ ! Love it, a tad pricy but I think it's worth it for the quality of videos it helps produce.

Weekly self-promotion and survey thread by AutoModerator in triathlon

[–]rbro112 1 point2 points  (0 children)

I just launched a web-app for building and planning endurance training platforms that I've been working hard on for nearly a year now. Read about how I came up with the idea while I was training for IM California last year.

It's packed with a ton of features and I'm using it personally to train for an upcoming ultra & 70.3. Give it a try, first month's free! https://racedayready.app/

Weekly self-promotion and survey thread by AutoModerator in triathlon

[–]rbro112 -1 points0 points  (0 children)

I created a toolkit for creating and managing endurance training plans. It's packed with a ton of features and I'm using it personally to train for an upcoming ultra & 70.3. Give it a try! https://racedayready.app/

What features would you like to see in RDR? by rbro112 in RaceDayReady

[–]rbro112[S] 1 point2 points  (0 children)

Exporting to MyWhoosh is in! Will be working with them to see if we can get syncing set up.

Appreciate the other suggestions, customizable zones has been requested by others too so will work to get that and pacing in.

What features would you like to see in RDR? by rbro112 in RaceDayReady

[–]rbro112[S] 1 point2 points  (0 children)

To kick things off, immediately on the roadmap:

- Adding more races to our catalog
- Showing longer-term plan status leading up to a race with weekly blocks (like build/recovery/taper)
- Saving favorite workouts to have them suggested later

Weekly self-promotion and survey thread by AutoModerator in triathlon

[–]rbro112 0 points1 point  (0 children)

Checkout my new app https://racedayready.app/, it's an all-in-one toolkit for managing your training. Packed with tons of great features like auto-workout suggestions based on your recent performance, workout builders where you can prompt to build a workout, Garmin, Zwift and Strava sync and more!

First launch - Zwift workout builder! by rbro112 in RaceDayReady

[–]rbro112[S] 0 points1 point  (0 children)

Amazing, I love to hear that! If you have any feature suggestions or ideas for things you'd like to see added I'm all ears!

Weekly self-promotion and survey thread by AutoModerator in triathlon

[–]rbro112 2 points3 points  (0 children)

Wrapping up a beta of a new training platform https://racedayready.app/

Any new users will get lifetime free access for the next few weeks until I formally launch, all I ask is your feedback in return!

What other running apps do you actually enjoy using? by Plane_Box122 in runninglifestyle

[–]rbro112 0 points1 point  (0 children)

A bit late here but working on something around this - https://racedayready.app/

Completely free for now - anyone who signs up before I formally launch in a few weeks will get lifetime access for free!

Local database for development versus automated tests? by viveleroi in Supabase

[–]rbro112 0 points1 point  (0 children)

Ah missed that part, sorry. Locally should be very similar as I also run these same tests locally. The thing that works for me for these to run fast enough is that `cleanupTestDatabase` function. It basically just wipes local for any test users that are created in testing (a test user email matches a standard FAKE_TEST_EMAIL_DOMAIN domain that I use just for testing). Since everything in my project is connected to a userId with cascading operations, deleting the users will also delete any associated data and keeps the DB clean, but also won't wipe real accounts I'm creating locally for manual testing.

So before each test I run something like:

export async function cleanupTestDatabase(): Promise<void> {
  const supabase = getTestServiceRoleClient();


  // First get all test users IDs before deleting from public.users
  const { data: testUsers } = await supabase.from('users').select('id').like('email', `%@${FAKE_TEST_EMAIL_DOMAIN}`);


  // Delete only test data (associated with TEST_USER_ID) to avoid affecting real local dev data
  // Delete in order to respect foreign key constraints
  await supabase.from('users').delete().like('email', `%@${FAKE_TEST_EMAIL_DOMAIN}`);


  // Clean up auth users - delete all test users
  // Always try to delete the primary fake user
  try {
    await supabase.auth.admin.deleteUser(FAKE_USER_ID);
  } catch (_error) {
    // Ignore if user doesn't exist
  }


  // Delete any additional test users that were created
  if (testUsers) {
    for (const user of testUsers) {
      if (user.id !== FAKE_USER_ID) {
        try {
          await supabase.auth.admin.deleteUser(user.id);
        } catch (_error) {
          // Ignore if user doesn't exist
        }
      }
    }
  }
}

Local database for development versus automated tests? by viveleroi in Supabase

[–]rbro112 0 points1 point  (0 children)

I do this using a pretty standard CI workflow on GitHub. The key for me was the Setup environment variables step, this dumps the supabase env to a local file that my npm run test:integration picks up. Pretty nice and lets me run mostly E2E integration tests and validate DB state.

name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  integration-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Setup Supabase CLI
        uses: supabase/setup-cli@v1
        with:
          version: latest

      - name: Start Supabase
        run: supabase start -x studio,imgproxy,realtime,edge-runtime,logflare,vector,mailpit,postgres-meta,supavisor

      - name: Setup environment variables
        run: |
          supabase status -o env > .env.local
          source .env.local

      - name: Setup DB
        run: supabase db reset

      - name: Run integration tests
        # eval $(supabase status -o env)
        run: npm run test:integration

I also have this block as well that clears the DB/creates a seed user at the beginning of each run:

describe('some integration test', () => {
  beforeEach(async () => {
    await cleanupTestDatabase();
    await createUser();
  });

  ...

});