Blackterz ships with a catalog of 64 exercises seeded from strengthlevel.es data. Every exercise has a Spanish name, a description, a category (all seeded entries useDocumentation 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.
fuerza), a color .avif image (~12 KB each), and an optional looping MP4 video sourced via AscendAPI. The catalog is read-only from the API perspective — exercises are managed through database seeds and migrations, not end-user requests.
Listing All Exercises
GET /api/ejercicios returns the full catalog, including each exercise’s associated muscle groups as a comma-separated string. The endpoint requires a valid JWT.
GROUP_CONCAT query across the exercises–muscle groups join:
Response fields
The exercise’s primary key.
Spanish name of the exercise, e.g.
"Press de banca".Brief description of technique or focus.
Exercise category. All 64 seeded exercises use the value
"fuerza". The column supports additional categories for future seed expansions.Filename of the
.avif image, e.g. "bench-press.avif". The frontend prepends /images/ at render time to build the full path served by express.static.Absolute URL to an MP4 video from AscendAPI, or
null if the video has not been fetched yet.Comma-separated list of muscle group names from the
grupos_musculares table, e.g. "Hombros, Pecho, Tríceps". Empty string if no assignments exist.Sample exercise object
Muscle Groups
The catalog covers 15 muscle groups defined in thegrupos_musculares table. Each exercise can have one or more principal or secondary group assignments via the ejercicios_grupos_musculares pivot table.
Upper Body — Push
Hombros, Tríceps, Pecho
Upper Body — Pull
Bíceps, Antebrazos, Espalda Media, Espalda Baja, Trampas
Lower Body
Cuádriceps, Isquiotibiales, Gemelos, Glúteos, Aductores, Flexores Cadera
Core
Core
musculos field returned by GET /api/ejercicios is a flat comma-separated string combining all muscle group assignments for that exercise. The frontend uses this string to power the real-time search filter — a query for "Hombros" matches every exercise that trains shoulders.
Exercise Videos via AscendAPI
Thegif_url field is populated by the AscendAPI (available on RapidAPI). The API returns looping MP4 video URLs for standard exercises by English slug.
Setup instructions
Setup instructions
- Create a RapidAPI account and subscribe to the AscendAPI.
- Copy your API key.
- Add it to your
.envfile:
- The seeder script maps Spanish exercise names to English slugs (e.g.
"Press de banca"→"bench-press") and fetches the video URL for each exercise.
Exercise Detail Modal (Lightbox)
The frontend renders a full-screen lightbox when a user taps an exercise image during a training session or while browsing the catalog. The modal shows:- The exercise image at full size
- Exercise name and description
- Muscle group list
- Category badge
- Looping MP4 video (autoplay, muted) if
gif_urlis available
Escape.
Adding Exercises to a Routine
Exercises are linked to routines through theejercicios_rutinas pivot table. To set the exercise list for a routine, send an ejercicios_ids array in a PUT /api/rutinas/:id request. The array completely replaces the current list — include all exercises you want, in the order you want them.
Adding Exercises Mid-Session
Users can add exercises from the catalog during an active training session without modifying the base routine. The frontend renders an “Agregar ejercicio extra” search panel below the routine’s exercise cards. Typing in the search box filters the catalog client-side using themusculos string — no additional API calls.
Extra exercises added mid-session are:
- Included in the
POST /api/sesionespayload underejercicios[] - Persisted to
localStorageviaguardarEstadoEntrenamiento()so they survive a page refresh - Not written back to the routine definition
The anti-duplicate filter (
obtenerIdsEjerciciosActivos()) scans the active DOM cards and hides already-added exercises from the extra panel, preventing the user from accidentally adding the same exercise twice.Exercise Search
Both the routine editor modal and the mid-session extra panel include a real-time search input. Filtering happens entirely client-side after the catalog is loaded once into memory:"Pecho" returns all chest exercises regardless of their name.
API Reference — Exercises
View full request/response schemas, error codes, and live playground for the
/api/ejercicios endpoint.