Commit Graph
60 Commits
Author SHA1 Message Date
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 6ccbfdbbea ci: remove unsupported arm v7 (#159) 2025-07-14 12:58:46 +02:00
Lucas Neves Pereira 261bf067e3 fix(ci): remove gha cache (#158) 2025-07-13 22:03:57 +02:00
Lucas Neves Pereira 18f9a94c30 fix(ci): change docker buildx driver (#157) 2025-07-13 19:28:53 +02:00
Lucas Neves Pereira 42fa551b13 feat(ci): multi architecture docker image builds (#156) 2025-07-13 18:43:56 +02:00
Mathias ff5ce47ca5 feat(ads): add in-article ad component and integrate new ad slots for BMI and heart rate zones calculators
feat(env): add new environment variables for ad slots to support additional advertising placements across various tools
refactor(heart-rate-zones): update heart rate zones page to include new in-article ads and remove deprecated components
refactor(calorie-calculator): update calorie calculator pages to include new ad slots and improve ad integration
refactor(bmi-calculator): enhance BMI calculator page with
2025-07-12 14:07:02 +02:00
Mathias 7503ae7e72 feat(ci): add new environment variables for ad slots to support additional banner ads across various pages
feat(profile, tools, programs): integrate new ad slots into profile, tools, and programs pages for enhanced advertising capabilities
2025-07-12 13:10:27 +02:00
Lucas Neves Pereira 25e0cf39f0 fix(ci): corrected tag parsing (#145) 2025-07-09 22:39:23 +02:00
Lucas Neves Pereira eb05ac83b0 ci(ghcr): remove leading v from github release tags (#134) 2025-07-02 19:11:09 +02:00
Lucas Neves Pereira cd6cb4bac5 ci(ghcr-images): set image tag for manual dispatch (#133) 2025-07-02 18:54:11 +02:00
Lucas Neves Pereira 2450a0a241 ci(ghcr-images): manual dispatch and no cache build (#132) 2025-07-02 18:42:13 +02:00
Mat B. 643bb6fa10 feat(env): add new environment variables for ad client and ad slots to support dynamic ad placements (#131)
fix(layout.tsx): replace hardcoded ad client ID with dynamic env variable for Google AdSense
fix(banners): update ad components to conditionally render based on environment variables for ad slots
chore: remove unnecessary console logs from various components to clean up the codebase
2025-07-02 18:01:23 +02:00
Mathias c5a135afb3 feat(env): add NEXT_PUBLIC_SHOW_ADS environment variable to control ad visibility
fix(AdWrapper): implement ad visibility logic based on NEXT_PUBLIC_SHOW_ADS variable
chore(ci): update CI configuration to include NEXT_PUBLIC_SHOW_ADS variable
docs(env.example): add NEXT_PUBLIC_SHOW_ADS to .env.example for clarity
2025-07-02 17:37:58 +02:00
Lucas Neves Pereira 74229cadd7 ci: skip notify discord for forked pr (#128) 2025-07-02 14:28:36 +02:00
Lucas Neves Pereira 9e6e7b2af2 ci: publish images to ghcr (#125) 2025-07-01 01:11:20 +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
Norris Oduro c2ee22dbfc chore: remove remaining facebook pixel code (#77) 2025-06-23 11:34:40 +02:00
Mathias ad0e4c0715 chore(notify-discord-pr): refactor JSON payload creation for Discord notifications to use jq for better formatting and escaping of special characters 2025-06-21 21:36:06 +02:00
Mathias d16c05e7ea feat(workflow): add Discord PR notification workflow to notify on PR events for better collaboration and visibility 2025-06-21 21:30:44 +02:00
Mathias 9a28a4de29 feat(notify-discord-issues): enhance Discord webhook payload creation to support multiple trigger types and improve data handling for issue details 2025-06-20 16:54:58 +02:00
Mathias 3ec2d36e47 fix(workflow): enhance Discord notification logic to differentiate between manual and automatic triggers for issue state updates 2025-06-20 16:53:47 +02:00
Mathias 0f50cd40c7 feat(notify-discord-issues): add manual trigger support for issue notifications with workflow_dispatch event and issue info retrieval 2025-06-20 16:49:33 +02:00
Mathias fb9823cd82 chore(notify-discord-issues): simplify Discord issue notification workflow by removing manual input handling and optimizing payload creation for better maintainability and clarity 2025-06-20 16:47:34 +02:00
Mathias e08fb734ef chore(notify-discord-issues): simplify body content handling and improve JSON payload creation for Discord notifications 2025-06-20 16:44:46 +02:00
Mathias 39ee9e48b2 refactor(workflow): improve Discord webhook payload preparation by using jq for JSON handling and streamline body content processing 2025-06-20 16:43:28 +02:00
Mathias 609a218e6b feat: add GitHub Actions workflow for Discord notifications on issue events to enhance communication and tracking of issue status changes 2025-06-20 16:41:19 +02:00
Adrien 540f57ae5d Fix: align ci with dockerfile (#51)
* ci(github): align workflow with Dockerfile and add optimizations

* feat: add pull request template

* fix(ci): update pnpm to v9 to match lockfile version

* fix(ci): add required environment variables for build
2025-06-20 16:13:30 +02:00
Mathias f1d5366b16 chore(notify-discord.yml): update comments from French to English for better clarity and consistency in the workflow file 2025-06-19 22:47:47 +02:00
Mathias 5bf890a50a chore(notify-discord): remove commented-out sections for changed files and release notes to clean up the workflow file 2025-06-19 22:45:26 +02:00
Mathias 5edf932df4 chore(notify-discord.yml): update Discord notification workflow to rearrange and uncomment download link while commenting out files changed section for clarity 2025-06-19 22:44:38 +02:00
Mathias 4bf6ef7b71 chore(notify-discord): comment out download and release notes sections in Discord notification workflow to simplify output and reduce clutter 2025-06-19 22:43:05 +02:00
Mathias cb608cf8f4 feat(notify-discord): add custom_title input for customizable release notifications in Discord 2025-06-19 22:40:36 +02:00
Mathias 3310ffe669 fix(notify-discord.yml): update Discord notification to include release notes in a separate field for better clarity and organization 2025-06-19 22:34:58 +02:00
Mathias e0d7838b26 chore(notify-discord): refactor Discord notification workflow to create a JSON payload for better structure and readability 2025-06-19 22:32:59 +02:00
Mathias cbc381193d chore(notify-discord): refactor Discord notification workflow to improve readability and maintainability by simplifying JSON construction and separating message preparation from sending logic 2025-06-19 22:31:06 +02:00
Mathias eb361ccb9d refactor(notify-discord.yml): simplify Discord webhook payload creation by using a temporary JSON file for better readability and maintainability 2025-06-19 22:29:15 +02:00
Mathias 46f196e8bc refactor(notify-discord.yml): simplify JSON construction for Discord message using jq for better readability and maintainability 2025-06-19 22:27:33 +02:00
Mathias dd9d4e6910 feat(notify-discord): enhance Discord notification workflow by preparing a structured JSON message for better formatting and readability 2025-06-19 22:26:01 +02:00
Mathias acc80457ff chore(notify-discord): refactor DISCORD_EMBEDS JSON structure for improved readability and maintainability 2025-06-19 22:24:20 +02:00
Mathias 71124500bf fix(notify-discord): update GitHub CLI command to use 'url' instead of 'htmlUrl' for consistency in release information retrieval 2025-06-19 22:19:55 +02:00
Mathias a0dbcbea3a chore(notify-discord): simplify output variable assignments and improve formatting for release notifications in GitHub Actions workflow 2025-06-19 22:18:29 +02:00
Mathias 61b5c88591 chore(notify-discord.yml): improve output formatting for release information and handle cases with no previous release to compare 2025-06-19 22:11:22 +02:00
Mathias 0cb302e075 fix(notify-discord): update GitHub CLI command to use 'url' instead of 'htmlUrl' for release information to align with API changes 2025-06-19 22:06:35 +02:00
Mathias 8be46ec780 feat(notify-discord): enhance Discord notification workflow with release info retrieval and manual trigger support
This update adds the ability to manually trigger the Discord notification workflow with an optional tag name input. It also retrieves release information using the GitHub CLI for both manual and automatic triggers, ensuring accurate data is sent in the notification.
2025-06-19 22:02:36 +02:00
Mathias 759260e120 chore(notify-discord): update actions/checkout to v4 and tj-actions/changed-files to v44 for improved functionality and performance
feat(notify-discord): add step to get previous release tag to enhance file change detection since last release
2025-06-19 21:53:32 +02:00
Mathias c62582f292 fix(notify-discord.yml): update base_sha to use github.event.before for better compatibility with release events 2025-06-19 21:52:29 +02:00
Mathias 25b55799ee chore(notify-discord): remove type field from Discord notification to simplify message structure 2025-06-19 20:14:02 +02:00
Mathias dca05f6dda chore(notify-discord): refactor Discord notification workflow to enhance message formatting and include release details
This update improves the Discord notification by adding structured release information, including the release title, description, and author details, while removing unnecessary steps and simplifying the output format.
2025-06-19 20:12:09 +02:00
Mathias ab92ac3065 chore(notify-discord): change trigger from push to release for Discord notifications on published releases 2025-06-19 20:01:41 +02:00