13 Commits

Author SHA1 Message Date
Lucas Neves Pereira dd997b9862 fix: docker scripts path (#182) 2025-08-21 00:10:10 +02:00
Lucas Neves Pereira a329795c88 Fix: Prisma Migration Baseline (#181)
* fix(migrations): apply baseline

* fix(migrations) database baseline
2025-08-21 00:09:57 +02:00
Mat B. a1bd2b26dd chore: adapt the backend for the mobile app (#171)
* feat(exercises): add new route for fetching exercises with filtering options
chore(import-exercises): improve formatting and clarity in the prompt for exercise attributes

* feat(shuffle): add shuffle exercise route with input validation and error handling
chore(delete-program-button): simplify button formatting and update confirmation message for clarity
chore(workspace): create workspace configuration for easier project management across frontend and mobile directories

* feat(auth): implement signup route with validation and error handling for user registration

* feat(api): add user password and profile management routes for updating and retrieving user information

* chore(route.ts): remove console.log statements for cleaner code and improved performance

* feat(profile): implement cookie cleaning and logging for user profile updates to enhance session management and debugging
fix(package): add @better-auth/expo dependency for improved authentication support
fix(better-auth): update trusted origins to include expo and workoutfast protocols for better compatibility

* feat(auth): implement mobile-compatible session handling to address malformed cookies from the mobile app and improve authentication reliability
chore(api): refactor user password and profile routes to utilize new mobile session utilities for better cookie management
docs(api): add README for mobile authentication support detailing issues and solutions for mobile app cookie handling

* feat(password): refactor password update logic to separate core functionality from action client for better reusability and clarity
fix(password): improve error handling in password update route to provide more specific feedback on validation failures

* refactor(mobile-auth.ts, mobile-cookie-utils.ts, mobile-safe-actions.ts): extract cleanMobileCookies function to a new utility file for better code organization and reuse across modules

* refactor(password route): simplify error handling by returning the original error message instead of custom messages for better maintainability and clarity

* feat(workout-sessions): add POST route for syncing workout sessions to handle mobile compatibility and session management

* feat(workout-sessions): add user-specific workout session retrieval and error handling for syncing sessions
fix(sync-workout-sessions): improve error handling for missing users and exercises during session sync process

* feat(feedback, rating, summary): implement feedback and rating endpoints for workout sessions, add summary metrics and update database schema to support ratings and comments

docs: create CLAUDE.md to provide project overview, architecture, key features, and deployment details

* refactor(route.ts): simplify GET request handler by removing userId parameter check and adding rating fields to response for enhanced session details

* feat(workout-sessions): implement DELETE route for deleting workout sessions with authentication checks and error handling

* refactor(workout-sessions): update DELETE route to handle sessionId as a resolved promise and simplify authentication checks in delete action

* feat(revenuecat): integrate RevenueCat for subscription management and user linking, add webhook handling for subscription events, and enhance premium status checks with RevenueCat data
fix(premium/status): update premium status endpoint to include RevenueCat information and improve error handling
chore(database): add RevenueCat fields to subscription model and create webhook event logging table in the database
build(dependencies): add RevenueCat backend wrapper and crypto-js for secure webhook signature verification

* chore: update .gitignore to exclude product-development and .claude directories
feat(locales): add French translation for lats in locales/fr.ts
fix(better-auth): update trustedOrigins to replace workoutfast with workoutcool for better authentication configuration

* fix(route.ts): update import path for getExercisesAction to reflect new actions directory structure for better organization

* feat(route.ts): add logging for session details to assist with debugging
feat(sync-workout-sessions.action.ts): extend workout session schema to include optional rating and ratingComment fields for enhanced user feedback

* feat(analytics): add premium analytics tracking endpoint and enhance subscription details with premium features

* feat(revenuecat): implement RevenueCat API client for subscription management and enhance premium service with syncing capabilities

* feat(statistics): implement exercise statistics feature with charts and data fetching for weight progression, one-rep max, and volume statistics, including premium access controls and UI components

* feat(exercises): enhance exercise attributes handling and UI for better user experience and performance tracking

* feat(ExercisesBrowser): enhance exercise selection with filters, statistics, and improved UI for better user experience

* feat(exercises): enhance exercise filtering and statistics fetching with improved query parameters and error handling in the ExercisesBrowser component

* refactor(statistics): replace ExerciseStatisticsTab with ExerciseCharts for improved clarity and functionality across multiple components

* refactor(statistics): clean up ExerciseStatisticsTab and ExercisesBrowser components by removing unused imports, simplifying modal structure, and enhancing styling for better readability and maintainability

* fix(ExercisesBrowser): add console log for selectedExercise and adjust styling for exercise image container to enhance layout and responsiveness

* feat(statistics): integrate recharts for improved charting and add theme support for better UI consistency

* feat(statistics): enhance exercise statistics page with new charts and localization updates, and remove unused statistics page for better organization

* feat: add lodash.debounce type definitions and clean up ExercisesBrowser component markup

* feat(statistics): remove exercises page and implement statistics page with localization and navigation updates

* fix(statistics): update alert variant for error handling and refactor tooltip implementation for better clarity and usability

* feat(statistics): enhance StatisticsPage with premium features and overlays for better user engagement and insights

* feat(premium-gate): add upgrade to premium message and streamline component structure for better readability

* feat(exercise): add new exercise attributes handling and refactor ExerciseSelection component to utilize updated types and methods for better attribute management

* refactor(exercise): simplify muscle attribute retrieval functions and improve type consistency across components

* feat: refactor workout session and exercise components for improved attribute handling and remove unused HomePage component

* fix(statistics.types.ts): reorder imports to maintain consistency and clarity in module structure

* feat(exercise-video-modal): implement tabbed interface for video and statistics with timeframe selection to enhance user experience

* feat(statistics): enhance statistics page with dynamic translations and improved user experience through localized content and updated UI elements

* feat(statistics): refactor ExercisesBrowser and ExerciseVideoModal to use TimeframeSelector component for improved code reusability and maintainability

* fix(locales/fr.ts): update French translations for consistency and accuracy in exercise terminology; fix(ExercisesBrowser.tsx): enhance muscle group labels to match updated translation keys and improve code readability

* feat(simple-select): add SimpleSelect component for reusable select functionality and integrate it into ExercisesBrowser for improved filtering options

* fix(fr.ts): update French translations for timeframes to use lowercase for consistency

* feat(statistics): enhance date formatting by integrating locale support across multiple components for improved user experience

* feat(locales): add statistics and tooltip translations in multiple languages for improved user experience

* feat(revenuecat): implement webhook handler for subscription updates and add advanced workout data seeding script

* feat(revenuecat): deprecate user ID assignment and linking endpoints, add sync-status endpoint for automatic management of RevenueCat IDs

* feat(webhook): add support for SUBSCRIPTION_PAUSED event and enhance logging for cancellation events

* fix(webhooks): rename expiration_at to expiration_at_ms for consistency in RevenueCatWebhookEvent interface and update related logic in processSubscriptionEvent function

* feat(revenuecat): implement new webhook handling and subscription sync logic to improve premium status management and simplify database schema

* chore: update USER_ID in seed-workout-data-advanced and simplify premium status check in premium.service to improve clarity and maintainability

* feat(api): add program enrollment and retrieval endpoints for better program management functionality

* feat(programs): enhance program enrollment and progress routes with new functionality and improve parameter handling

* refactor(api): update parameter types to use Promise for slug and sessionSlug in route handlers for better async handling and clarity

* refactor(premium.service.ts): remove revenueCatEntitlement references to simplify premium access logic and improve code clarity

* chore(ci): add RevenueCat environment variables for CI workflow testing

* chore: remove unused RevenueCat project ID references to clean up codebase

* chore: remove deprecated API routes and clean up unused code to streamline the codebase

* chore: baseline migration
2025-08-14 20:35:40 +02:00
Lucas Neves Pereira 88517578ce feat: leaderboard (#169)
* feat: leaderboard page

* refactor: simplify leaderboard fetching logic

* refactor: separated leaderboard concerns

* fix(scritps): use enum in seed leadarboard

* fix(lint): remove unused translation prop

* lint: rollback import plugin

* feat(leaderboard): enhance UI with member dates and dicebear avatars

* fix(leaderboard): correct use top users hook

* feat(leaderboard): cleaned date related and unused code
2025-08-10 19:57:49 +02:00
Mathias 0dc5efa41c chore(seed-multi-region-plans): comment out subscription plan upsert logic for monthly and yearly plans to prevent execution during seeding
feat(workout-stepper): add HorizontalTopBanner component to enhance user experience in workout stepper
style(workout-session-timer): adjust position of timer component for better layout in workout session UI
2025-07-01 18:43:23 +02:00
Mat B. 10efc94827 feat/roast-my-pricing-page (#122)
* feat(premium): implement new pricing page with detailed feature comparison, testimonials, and FAQs to enhance user experience and support mission-driven approach
fix(premium): update PremiumManager to return structured plans including Free, Supporter, and Premium options for better clarity and user choice
docs(premium): add README for premium UI components detailing architecture, design system, and usage instructions to facilitate development and onboarding

* feat(premium): enhance premium features and pricing structure with yearly option and updated UI elements
fix(premium): update FAQ content for clarity and accuracy, and remove deprecated features from the comparison table
style(premium): improve layout and styling for better user experience across premium upgrade card and feature comparison table

* feat(premium): refactor checkout process to retrieve plan details by internal ID and update checkout creation logic
chore(premium): remove unused mobile sticky CTA component to streamline codebase
fix(pricing): update text for clarity and improve accessibility in various components
style(pricing): adjust layout and styling for better responsiveness and visual consistency across pricing sections

* chore(premium/ui): remove unused export of MobileStickyCard to clean up codebase

* feat(locales): add comprehensive translations for premium features, pricing, and FAQs in English, Spanish, French, Portuguese, Russian, and Chinese to enhance user experience and accessibility across multiple languages
refactor(premium UI): implement translation keys for dynamic text rendering in the premium upgrade card, feature comparison table, and pricing FAQ sections to improve maintainability and localization support

* chore(pricing-testimonials.tsx): add TODO comment to indicate the need for testimonials implementation

* feat(locales): update feature descriptions across multiple languages for clarity and consistency
refactor(premium.manager.ts): remove hardcoded free and paid plans to streamline plan management and improve maintainability
chore(premium-upgrade-card.tsx): remove deprecated features from the premium upgrade card to reflect current offerings

* feat(premium): implement multi-region pricing plans and update environment variables for Stripe price IDs to support various regions
fix(premium): update checkout logic to use planId directly instead of fetching plan details
refactor(premium): enhance region detection logic for better user experience and add dynamic pricing fetching in the PremiumUpgradeCard component
chore(ci): update CI configuration to include new environment variables for multi-region pricing
docs: remove outdated error messages from localization files and update premium active state messages for better clarity

* fix(seed-subscription-plans): update externalId to use EU-specific environment variables for Stripe pricing plans to ensure correct pricing for the EU region
2025-06-30 21:22:24 +02:00
Mat B. 8eaf9b5ceb feat/open-core-model (#114) 2025-06-27 14:06:33 +02:00
Mat B. 78339d1d17 chore/content translations (#101) 2025-06-25 02:06:15 +02:00
Norris Oduro 0c9c4b7d2c feature: add workout_cool service to docker compose file (#49)
* add workout_cool service to docker compose file

* connect to postgres not localhost

* update docker file to ensure sample files can be added optionally

* copy sample exercise to image and update setup.sh script to import seed data based on env

* update readme with setup instructions for docker compose
2025-06-22 22:34:42 +02:00
Mathias 6aea06016e docs: update README with instructions for local development exercise import and add new prompt file for generating fitness exercises in CSV format 2025-06-19 20:45:00 +02:00
Lucas Neves Pereira dbcb0f9390 feat: dockerfile for production deployment & improve dev workflow (#34)
* feat: dockerfile for production deployment & improve dev workflow

* feat: docker build image with env

* feat: production deployment workflow with setup script
2025-06-19 19:39:36 +02:00
Mathias 13010512e3 feat(workout-session): implement workout session synchronization feature with local storage and server integration
fix(locales): remove unused translation keys for complete workout in English and French
refactor(import-exercises): add normalization for exercise attribute values to ensure consistency during import
2025-06-14 16:21:16 +02:00
Mathias 77b44b32e0 chore: first commit 2025-06-11 15:23:25 +02:00