Skip to content

MVP Working#5

Merged
albinson-arias merged 223 commits into
mainfrom
dev
Nov 29, 2025
Merged

MVP Working#5
albinson-arias merged 223 commits into
mainfrom
dev

Conversation

@albinson-arias

@albinson-arias albinson-arias commented Nov 29, 2025

Copy link
Copy Markdown
Owner

Note

Introduce nutrition/meal-plan schema and refine food tables/constraints via new Serverpod migrations.

  • Database (Serverpod migrations):
    • New Nutrition/Meal Planning:
      • Add nutrition_plans, meal_plans (incl. dayNumber, target macros), and meal_plan_foods (serving quantity and grams, soft-delete fields) with FKs.
    • Food Domain Updates:
      • Recreate food_categories with new slug column.
      • Recreate foods with numeric macro fields as double precision; set foods.categoryId FK to CASCADE on delete.
      • Set CASCADE deletes for FKs on food_micronutrients, food_serving_sizes, and user_food_preferences.
    • Meta:
      • Add/refresh comprehensive definition.* and migration.* files for multiple timestamps reflecting the above schema changes.

Written by Cursor Bugbot for commit 4748e86. This will update automatically on new commits. Configure here.

… image build

feat(devtools): add devtools_options.yaml for Dart & Flutter DevTools settings
feat(template): update title in built_with_serverpod.html to include author name
- Created SQL definition for new tables: email_templates, exercise_alternatives, exercise_images, exercises, user_profiles, serverpod_cloud_storage, serverpod_cloud_storage_direct_upload, serverpod_future_call, serverpod_health_connection_info, serverpod_health_metric, serverpod_log, serverpod_message_log, serverpod_method, serverpod_migrations, serverpod_query_log, serverpod_readwrite_test, serverpod_runtime_settings, serverpod_session_log, serverpod_auth_key, serverpod_email_auth, serverpod_email_create_request, serverpod_email_failed_sign_in, serverpod_email_reset, serverpod_google_refresh_token, serverpod_user_image, serverpod_user_info.
- Added foreign key constraints for exercise_alternatives and exercise_images tables.
- Updated migration files to include new column 'hasEquipment' in user_profiles table.
- Updated migration registry to include new migration version.
- Created new SQL migration to define the structure for user_profiles, email_templates, exercise_alternatives, exercise_images, and exercises tables.
- Added foreign key constraints and indexes for exercise_alternatives and exercise_images.
- Updated migration JSON files to reflect the new table definitions and relationships.
- Dropped and recreated user_profiles table to accommodate new schema changes.
- Updated migration registry to include the new migration version.
- Created new SQL migration to drop and recreate the user_profiles table with updated schema.
- Added new tables: email_templates, exercise_alternatives, exercise_images, exercises, serverpod_cloud_storage, serverpod_cloud_storage_direct_upload, serverpod_future_call, serverpod_health_connection_info, serverpod_health_metric, serverpod_log, serverpod_message_log, serverpod_method, serverpod_migrations, serverpod_query_log, serverpod_readwrite_test, serverpod_runtime_settings, serverpod_session_log, serverpod_auth_key, serverpod_email_auth, serverpod_email_create_request, serverpod_email_failed_sign_in, serverpod_email_reset, serverpod_google_refresh_token, serverpod_user_image, serverpod_user_info.
- Updated migration registry to include the new migration version.
- Added JSON definitions for the new tables and their relationships.
- Created new tables: workout_exercises, workout_plans, and workout_sessions.
- Defined columns, foreign keys, and indexes for the new tables.
- Added email_templates table with necessary columns and constraints.
- Included migration scripts in SQL, JSON, and migration registry.
…dyrd

- Created tables for email templates, exercises, user profiles, workout plans, and related entities.
- Added foreign key constraints and indexes for data integrity and performance.
- Updated the workout_plans table to include a status column with a default value of 'active'.
- Added migration files for the new schema and modifications.
- Updated migration registry to include the new migration version.
- Implemented `EndpointWorkout` class to handle workout-related API calls.
- Added `getActiveWorkoutPlan` method to retrieve the active workout plan for a user.
- Created `NoActiveWorkoutPlanException` to handle cases where no active workout plan is found.
- Updated protocol files to include new workout endpoint and exception.
- Modified generated endpoints to include the new workout endpoint.
- Updated test tools to support the new workout endpoint functionality.
- Introduced CreateWorkoutExerciseDto, CreateWorkoutSessionDto, and CreateWorkoutPlanDto for structured workout data transfer.
- Implemented createWorkoutPlan method in WorkoutEndpoint to handle the creation of workout plans, including sessions and exercises.
- Added exceptions for active workout plan checks: ActiveWorkoutPlanExistsException and NoActiveWorkoutPlanException.
- Updated protocol and generated files to include new DTOs and exceptions.
- Enhanced integration tests to cover the new createWorkoutPlan functionality.
…updates

- Implemented the requestWorkoutPlanGeneration method in the WorkoutEndpoint.
- Updated endpoints.dart to include the new method with parameters userId and numberOfWeeks.
- Modified protocol.dart to include StreamStatus and updated serialization logic for new models.
- Updated protocol.yaml to register the new endpoint.
- Added dio package for HTTP requests and dio_web_adapter for web support.
- Enhanced serverpod_test_tools.dart to include a test stream for requestWorkoutPlanGeneration.
- Deleted the existing user_profiles table and recreated it with new columns: weightKgs and heightMs.
- Removed columns: weightLbs and heightCms from the user_profiles table.
- Updated migration files (JSON and SQL) to reflect the changes in the user_profiles schema.
- Added new definition_project.json file to define the database schema for the fitbodyrd module.
- Updated migration_registry.txt to include the new migration version.
- Created tables: food_categories, food_micronutrients, food_serving_sizes, foods, user_food_preferences.
- Defined columns with appropriate data types and constraints.
- Established foreign key relationships between food-related tables and user_profiles.
- Updated migration registry to include the new migration version.
- Created definition_project.json to define the database schema for the fitbodyrd module, including tables for email_templates, exercises, foods, and user_profiles.
- Added migration.json to specify the alteration of the user_profiles table to include a new column dietaryRestrictions with a default value of 'none'.
- Implemented migration.sql to execute the ALTER TABLE command for adding the dietaryRestrictions column and update the migration registry.
- Updated migration_registry.txt to include the new migration version.
- Deleted the existing food_categories table and recreated it with updated columns: slug, iconName, colorHex, and displayOrder.
- Added foreign key constraint for parentCategoryId referencing the same table.
- Created migration files for the changes in both JSON and SQL formats.
- Updated migration registry to include the new migration version.
- Enhanced serverpod test tools to include endpoints for managing food categories, including methods for retrieving, creating, updating, and deleting food categories.
- Updated protocol.yaml to include new food-related methods: getFoods, getFoodById, createFood, updateFood, and deleteFood.
- Implemented the food management methods in serverpod_test_tools.dart, allowing for CRUD operations on food items.
- Adjusted user and workout endpoint methods to reference the correct models after refactoring.
…endpoints to track session completion status
…ards with MetricCard components and removing unused _buildSmallStatCard method
…ition progress indicators, enhancing user experience with visual cues and messages
…ity; bump version in pubspec.yaml to 1.1.1+7
…ng unnecessary blank lines for improved readability
…es, tasks, and coverage goals for backend and frontend modules
…nd and backend, enhancing testing infrastructure documentation
…enarios, and update testing roadmap to reflect progress
…r session handling and date comparison utilities, enhancing test coverage and reliability
… reflecting progress on user session and date comparison utilities
…ality and subscription management, and update testing roadmap to reflect progress
…methods and update testing roadmap to reflect completion of Stage 2
…ieval, refresh, and cache management, and update testing roadmap to reflect completion of Stage 2.3
…gnUp methods, and update testing roadmap to reflect completion of Stage 2.4
…ancing test coverage and update testing roadmap to reflect completion of Stages 2.5 and 2.6
…trieval and creation, and update testing roadmap to reflect completion of Stage 3.1
…ser profile retrieval, food preferences, and utility functions, and update testing roadmap to reflect completion of Stage 3
…retrieval and edge cases, and update testing roadmap to reflect completion of Stage 4.1
… weekly summary retrieval, loading states, and error handling, and update testing roadmap to reflect completion of Stage 4
…lculations, food management, and update testing roadmap to reflect completion of Stage 5
…t and utility functions, and update testing roadmap to reflect completion of Stage 6
…endpoints, exceptions, and update testing roadmap to reflect completion of Stage 7
…epository and cubit tests, and update testing roadmap to reflect completion of Stage 7
…profile management and state transitions, and update testing roadmap to reflect completion of onboarding and splash stages
…e Android and iOS configurations, and replace existing icons with new assets for a cohesive branding experience across platforms.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Bug: Production deployment triggered from dev branch

The workflow triggers on both main and dev branches (line 5) but the Deploy to VPS step no longer has the if: github.ref == 'refs/heads/main' condition that was removed (line 60 in diff). This means pushes to the dev branch will now deploy to production VPS, potentially overwriting production with unstable development code. The conditional deployment check should be restored to ensure only the main branch deploys to production.

.github/workflows/build-and-publish-server.yml#L59-L70

- name: Deploy to VPS
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
script: |
docker pull ghcr.io/albinson-arias/fitbodyrd_server:latest
cd /home/albinson/containers/fitbodyrd_server
docker compose down
docker compose up -d --build

Fix in Cursor Fix in Web


if: steps.compare_versions.outputs.should_build == 'true'
uses: subosito/flutter-action@v2
with:
flutter-version: '3.38.2'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Invalid Flutter version specified in workflow

The workflow specifies flutter-version: '3.38.2', but this version doesn't exist. Flutter 3.38.0 exists as a documented release, but there is no 3.38.2 patch version. This will cause the workflow to fail when attempting to set up Flutter, preventing APK builds from completing. The version should be updated to an existing Flutter version such as 3.38.0 or the latest stable version.

Fix in Cursor Fix in Web

draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: GitHub releases created from dev branch

The workflow triggers on both main and dev branches (line 5), but the Create Release step lacks a branch condition. This allows the dev branch to create public GitHub releases with production tags when the version changes, potentially publishing unstable development builds as official releases. The workflow should add if: github.ref == 'refs/heads/main' to the release creation step to ensure only the main branch creates releases.

Fix in Cursor Fix in Web

@albinson-arias albinson-arias merged commit 68bd15d into main Nov 29, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant