feat: add Phase 5 Progression & Analytics — smart suggestions, dashboard, schedule
Add auto-progression engine (ProgressionService) with rep increase, weight increase, deload, and felt-easy acceleration rules. Add AnalyticsService for user stats, exercise progress charts, and volume-by-day data. New dashboard and schedule routes with Chart.js visualizations. Progression badges shown inline on workout day view. Navigation updated with Dashboard and Schedule links. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
48
app/templates/pages/exercise_progress.html
Normal file
48
app/templates/pages/exercise_progress.html
Normal file
@@ -0,0 +1,48 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}{{ exercise.name }} Progress -- SneakySwole{% endblock %}
|
||||
|
||||
{% block head_extra %}
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@4"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<hgroup>
|
||||
<h1>{{ exercise.name }}</h1>
|
||||
<p>{{ exercise.muscle_group }} | {{ exercise.workout_day }} Day</p>
|
||||
</hgroup>
|
||||
|
||||
<!-- Progression Suggestion -->
|
||||
{% if suggestion %}
|
||||
<article>
|
||||
<header><h3>Next Workout Suggestion</h3></header>
|
||||
<p>{{ suggestion.message }}</p>
|
||||
<div class="grid">
|
||||
<div>
|
||||
<small>Suggested Reps</small>
|
||||
<p style="font-size:1.5rem; font-weight:700;">
|
||||
{{ suggestion.suggested_reps }}
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<small>Suggested Weight</small>
|
||||
<p style="font-size:1.5rem; font-weight:700;">
|
||||
{{ suggestion.suggested_weight }}
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<small>Progression Type</small>
|
||||
<p><mark>{{ suggestion.progression_type }}</mark></p>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
{% endif %}
|
||||
|
||||
<!-- Progress Chart -->
|
||||
<article>
|
||||
<header><h3>Rep and Weight Trends</h3></header>
|
||||
{% include "partials/progress_chart.html" %}
|
||||
</article>
|
||||
|
||||
<a href="/dashboard" role="button" class="outline">Back to Dashboard</a>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user