Blackterz offers two complementary progress views built entirely from data already captured during normal training sessions. The weekly volume chart gives a macro view of training load over time, while the personal records (PRs) board surfaces the best performance ever logged per exercise. Both are derived from theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Blackterz2/Proyecto_5to_Semestre/llms.txt
Use this file to discover all available pages before exploring further.
sesion_series table and require no additional input from the user.
Weekly Volume Chart
The profile page renders a Chart.js 4 bar chart showing total training volume per ISO week for the last 8 weeks. Volume for each week is the sum ofpeso × repeticiones across all completed sets (completada = 1) in sessions that fall within that week.
Fetch session history
GET /api/sesiones returns the full history. Each session already includes volumen_total_kg — a pre-aggregated sum calculated server-side by the obtenerHistorialUsuario query.Sum volume per week
Sessions in the same ISO week accumulate into a single bucket. The result is a map of
{ 'YYYY-MM-DD': totalKg } keyed by each week’s Monday.Routine filter
A<select> dropdown above the chart lets users filter volume by routine. Selecting a specific routine re-groups the data to include only sessions linked to that routine. Selecting “Todas las rutinas” restores the aggregate view.
The chart receives the complete history array — not the current page of the paginated table. Pagination only affects the history table rows; the chart always reflects all available data.
Personal Records
GET /api/estadisticas/prs returns the maximum weight ever logged per exercise, considering only sets marked as completed (completada = 1).
Sample PR response
PR response fields
The exercise’s primary key.
The exercise’s Spanish display name.
Highest weight (kg) ever logged in a completed set for this exercise.
Highest repetition count ever logged in a completed set.
Number of distinct sessions in which this exercise appeared.
Total count of completed sets ever logged for this exercise.
If the authenticated user has no completed training sessions, the endpoint returns an empty array
[] — never an error.Session History Table
The profile view includes a paginated history table showing the 10 most recent sessions per page.- Table columns
- Pagination
| Column | Source |
|---|---|
| Date | sesiones_entrenamiento.fecha formatted as "15 de junio, 2026" |
| Routine | rutinas.nombre via LEFT JOIN |
| Volume | volumen_total_kg (pre-aggregated) |
| Sets | total_series (completed sets count) |
| Duration | duracion_minutos |
| Detail link | Navigates to session detail view |
Progressive Overload
GET /api/sesiones/ultima/:rutina_id is the bridge between the history system and the active training flow. It returns the most recent session for a routine with sets grouped by exercise, enabling the frontend to show each set’s previous values as grey hints.
Fetch the last session
GET /api/sesiones/ultima/:rutina_id retrieves actual weights and reps from the previous workout.Data Source
All statistics — weekly volume, personal records, session history totals — are derived exclusively from thesesion_series table. The relevant columns are:
| Column | Type | Description |
|---|---|---|
numero_serie | INT | Set number within the exercise (1-indexed) |
repeticiones | INT | Reps performed |
peso | DECIMAL | Weight in kilograms |
completada | BOOLEAN | Whether the user checked this set as done |
completada = 1 contribute to PRs and volumen_total_kg calculations. Unchecked sets are saved to the database but excluded from all statistics.
API Reference — Statistics
View the full schema for
GET /api/estadisticas/prs.API Reference — Sessions
View the full schema for
GET /api/sesiones and GET /api/sesiones/ultima/:rutina_id.