# Comprehensive Implementation Prompt – Fitness Planner User Journey & Subscription System

## Objective

Implement a complete end-to-end Fitness Planner experience that guides users through a structured fitness journey while integrating a 30-day free trial and paid subscription model.

The application should feel seamless, intuitive, and motivational, encouraging users to progress naturally from planning to completing workouts and tracking long-term results.

---

# Overall User Journey

The Fitness Planner should follow this exact workflow:

**Onboarding → Plan Selection → Program Review → Dashboard → Workout Execution → Progress Tracking**

Each stage should transition naturally into the next without leaving the user wondering what to do next.

---

# Stage 1 – Onboarding

After a user signs up, they should complete the onboarding questionnaire.

The questionnaire should collect enough information to personalize the fitness experience, including:

* Fitness goal
* Experience level
* Available equipment
* Preferred workout location
* Weekly workout frequency
* Workout duration
* Gender (optional)
* Age (optional)
* Height & Weight (optional)
* Injuries or physical limitations (optional)

Once the questionnaire is completed:

Automatically redirect the user to:

```
/fitness-planner/my-plans
```

---

# Stage 2 – My Plans

Reference page:

```
http://localhost:3000/fitness-planner/my-plans
```

This page is responsible for displaying the workout plans available to the user.

Each plan should include:

* Program title
* Difficulty
* Duration
* Target goal
* Estimated workouts per week
* Description
* "View Structure" button

Users should only be able to activate ONE workout plan during their 30-day free trial.

When the user clicks **View Structure**, navigate to the workout program page.

Example:

```
http://localhost:3000/fitness-planner/library/prog_beginner_muscle
```

---

# Stage 3 – Program Review

Reference page:

```
http://localhost:3000/fitness-planner/library/prog_beginner_muscle
```

This page becomes the workout program preview.

The user should be able to review:

* Program overview
* Weekly schedule
* Workout tables
* Exercises
* Sets
* Repetitions
* Rest periods
* Estimated workout duration

When the user confirms their selection:

Save the workout program to their account.

The button should change from:

"Save Workout"

to

"Active — Go to Dashboard"

Clicking this button should redirect the user to:

The Fitness Dashboard.

---

# Stage 4 – Fitness Dashboard

The dashboard should always load the user's currently active workout plan.

The dashboard should clearly display:

## Current Program

* Program name
* Fitness goal
* Difficulty
* Progress percentage

## Next Workout

Display today's scheduled workout.

Include a large primary CTA:

**Start Workout**

This should be the most visually prominent button on the page.

---

## Dashboard Widgets

Include:

* Active workout program
* Current streak
* Weekly workouts completed
* Calories burned
* Workout duration statistics
* Personal bests
* Upcoming workout
* Recent activity
* Weight/body measurements
* Achievement badges

---

## Progress Section

Include a dedicated tab:

**View Progress Report**

The report should show:

* Completed workouts
* Exercise history
* Sets completed
* Repetitions completed
* Weight lifted
* Workout duration
* Calendar history
* Charts showing improvement
* Personal records
* Adherence percentage

---

# Stage 5 – Workout Execution

Clicking:

**Start Workout**

should immediately begin the active workout.

The workout page should NOT be a simplified version.

Instead, it should reuse the exact workout tables and workout structure already available on:

```
http://localhost:3000/fitness-planner/library/prog_beginner_muscle
```

Reuse the existing workout table layout rather than creating a different interface.

---

## Workout Page Features

Include:

* Workout timer
* Exercise list
* Sets
* Repetitions
* Rest timer
* Exercise notes
* Mark exercise complete
* Skip exercise
* Pause workout
* Finish workout

Allow users to modify during the workout:

* Sets
* Repetitions
* Weight
* Rest duration

This allows workouts to adapt to how the user feels on that day.

---

# Saving Workout Data

Every completed workout should save:

* Date
* Time
* Duration
* Workout completed
* Exercises completed
* Sets performed
* Repetitions performed
* Weight used
* Calories burned (estimated)
* Notes
* Completion percentage

The saved data should automatically populate the dashboard's:

**View Progress Report**

---

# Subscription System

The platform should operate using a **30-Day Free Trial + Paid Subscription** model.

---

# New User Choice

Immediately after registration (or at the appropriate point in the onboarding flow), present two clear options:

## Option 1 – Start 30-Day Free Trial

Includes:

* One personalized fitness goal
* One active workout program
* Workout timer
* Dashboard
* Progress tracking
* Workout history
* Program review
* Workout execution

Restrictions:

* Only one active workout program.
* Workout program cannot be changed during the trial.
* One active fitness goal only.

---

## Option 2 – Subscribe Immediately

Allow users to skip the free trial and subscribe straight away.

Users who choose this option receive immediate access to all features included in their selected paid plan.

---

# Trial Restrictions

During the 30-day free trial:

Users may:

* Complete workouts
* Track progress
* View reports
* Use the dashboard

Users may NOT:

* Change their active workout program after it has been selected.
* Create additional fitness goals.
* Activate multiple workout plans.

If the user attempts to change their workout program during the trial:

Do not allow the change.

Instead, display an upgrade dialog explaining that changing workout programs requires a Premium subscription.

---

# Trial Countdown

Display a banner on the dashboard.

Example:

"You are on Day 12 of your 30-day free trial."

Include:

**Upgrade Now**

button.

Display reminders when:

* 7 days remain.
* 3 days remain.
* 1 day remains.
* Trial expires.

---

# Trial Expiration

When the 30-day trial ends without an active subscription:

Place the account into **Read-Only Mode**.

The user should still be able to:

* View dashboard
* View workout history
* View progress reports
* View achievements

However, they should NOT be able to:

* Start a workout
* Continue workout programs
* Change workout plans
* Add fitness goals
* Access AI recommendations
* Save new workouts

Instead, present an upgrade screen prompting them to subscribe.

---

# Premium Subscription

## Premium

Price:

**USD $5/month**

Features:

* Unlimited workout sessions
* Change workout programs anytime
* Up to two active fitness goals
* AI workout recommendations
* AI recovery suggestions
* Nutrition recommendations
* Advanced analytics
* Export PDF reports
* Workout reminders
* Calendar integration
* Priority support

---

# Pro Subscription

## Pro

Price:

**USD $10/month**

Includes everything in Premium plus:

* Unlimited workout programs
* Unlimited fitness goals
* AI Personal Trainer
* Adaptive workout plans
* Plateau detection
* Smart progression
* Recovery optimization
* Wearable device integration
* Coach messaging (future)
* Advanced analytics

---

# Upgrade Opportunities

Display upgrade prompts whenever users attempt to:

* Change workout plans during the trial.
* Add another fitness goal.
* Access Premium-only analytics.
* Access AI recommendations.
* Access Pro-only features.

Upgrade prompts should clearly explain the benefits of subscribing rather than simply stating that access is restricted.

---

# Data Persistence

The following data must remain synchronized across all pages:

* User profile
* Onboarding responses
* Subscription status
* Trial status
* Active workout program
* Fitness goals
* Workout history
* Exercise history
* Progress reports
* Achievements
* Dashboard statistics

Users should always return to the same active workout program and dashboard state when they log back in.

---

# Success Criteria

The implementation will be considered complete when the user can seamlessly follow this journey:

1. Register an account.
2. Choose either:

   * Start the 30-day free trial, or
   * Subscribe immediately.
3. Complete the onboarding questionnaire.
4. Automatically arrive at:

   ```
   /fitness-planner/my-plans
   ```
5. Browse and activate a workout plan.
6. Click **View Structure** to open:

   ```
   /fitness-planner/library/prog_beginner_muscle
   ```
7. Review the workout program.
8. Save the workout plan.
9. Click **Active — Go to Dashboard**.
10. Arrive at the dashboard with the selected workout plan already displayed.
11. Click **Start Workout**.
12. Complete the workout using the same workout tables and structure from:

    ```
    /fitness-planner/library/prog_beginner_muscle
    ```
13. Save the completed workout.
14. View updated statistics and workout history in the **View Progress Report** section of the dashboard.
15. Continue progressing until the 30-day trial expires or subscribe to Premium/Pro to unlock ongoing access and additional features.

# Expected Outcome

The final product should feel like a polished, production-ready fitness application where every screen naturally leads to the next. Navigation should be intuitive, user progress should be automatically saved and restored across sessions, and the subscription system should encourage upgrades through clear value rather than disruptive restrictions. The user should never lose context or wonder what action to take next—the application should guide them from onboarding through long-term fitness tracking in a cohesive, engaging experience.
