How hasaneyldrm/exercises-dataset works
1. Repository purpose
- This is a static exercise dataset package, not a server-side application.
- The core asset is data/exercises.json, backed by 1,324 thumbnail images in images/ and 1,324 animation GIFs in videos/.
- The repo also includes two browser-based tools: index.html for browsing the dataset and setup.html for developer onboarding.
2. Primary data model
- The architecture centers on a single JSON array of exercise records.
- Each record links exercise metadata to two media paths: a .jpg thumbnail and a .gif animation.
- The dataset carries multilingual instruction content in English, Spanish, Italian, and Turkish, so the JSON file is the authoritative source for both content and media references.
3. Content and media separation
- data/exercises.json stores structured exercise attributes such as category, body part, equipment, target muscle, secondary muscles, and instructions.
- images/ and videos/ are purely passive asset stores with 1:1 naming alignment to the records.
- The naming convention {index}-{exerciseId}.{ext} is what binds the metadata record to its visual assets.
4. Client-side browser subsystem
- index.html is a standalone, no-server-needed exercise explorer.
- It performs live search, filtering, and incremental rendering over the dataset in the browser.
- The user flow is: load JSON → query/filter in memory → render exercise cards → open a detail view with instructions and GIF media.
5. Interactive detail view
- The browser UI appears to use the thumbnail grid as the primary navigation surface.
- Clicking a card surfaces the exercise’s full metadata, including the GIF animation and multilingual instructions.
- This makes the dataset usable as an offline catalog without any API layer.
6. Developer onboarding subsystem
- setup.html is a second client-side tool focused on integration guidance rather than end-user browsing.
- It helps developers translate the dataset into a database-backed application by generating database schema examples and insertion content in-browser.
- It also provides API client snippets and prompt templates for generating backend services with LLMs.
7. Data export and integration flow
- The intended data flow for downstream use is: open data/exercises.json or generate SQL from the browser guide → import into a relational database → expose through a custom API.
- The repo itself does not implement that API; it documents how to build one.
- This makes the repository a source dataset and reference UI, not a full application stack.
8. Supported downstream targets
- The setup guide explicitly targets common backend and database combinations: SQL Server, PostgreSQL, MySQL, SQLite, and frameworks such as Express.js, FastAPI, ASP.NET Core, Spring Boot, Laravel, and Gin.
- Those technologies are not runtime dependencies of the repo itself, but they define the intended integration boundaries.
- The repo is therefore framework-agnostic at the storage/API layer.
9. External data provenance
- The dataset originates from ExerciseDB v1 by AscendAPI and was re-hosted via a Kaggle dataset source.
- The repo adds translations, cleanup, and the browser/setup HTML tools on top of the original exercise data.
- Media and base exercise content remain externally attributable and are governed by the upstream terms noted in the README.
10. Runtime characteristics
- Everything important runs as static browser content: HTML, JSON, JPG, GIF.
- There is no build step, no package manager, and no local database required for the included tools.
- This makes the architecture simple: file-based distribution with client-side consumption.
11. Repository boundary
- The repo’s boundary ends at asset delivery and browser-based interaction.
- It does not store user-generated data, authentication state, or server-side business logic.
- Any persistence, indexing, search backend, or API is expected to live in a separate application built by consumers of this dataset.
12. Diagram-friendly summary
- A good architecture diagram would show:
- a central JSON dataset,
- two asset folders for thumbnails and animations,
- a browser-based exercise explorer consuming both,
- a browser-based setup guide producing SQL/API integration guidance,
- and an external upstream source feeding the dataset content.
Main entry points: exercises.json Exercises JSON · index.html Exercise Explorer · setup.html Setup Guide · images Thumbnails
Components 16
Content Store
Authoritative exercise data and media assets
- Exercises JSON · Authoritative array of exercise records with metadata, translations, and media references
data/exercises.json - Thumbnails · Static JPG thumbnails aligned 1:1 with exercise records
images - Animations · Static GIF exercise animations aligned 1:1 with exercise records
videos - Exercise Record · Per-exercise fields such as category, body part, equipment, muscles, instructions, and media paths
data/exercises.json - Naming Link · Index-plus-id filename convention binding records to thumbnail and GIF assets
- Translations · Multilingual instruction content in English, Spanish, Italian, and Turkish
data/exercises.json
Browser Tools
Static HTML tools for browsing and integration guidance
- Exercise Explorer · Standalone offline browser for search, filtering, cards, and detail views
index.html - Search & Filter · Live query and filter over the dataset in memory
index.html - Card Grid · Incremental rendering of exercise cards as the main navigation surface
index.html - Detail View · Expanded exercise view with full metadata, instructions, and GIF animation
index.html - Setup Guide · Developer onboarding page for database and API integration guidance
setup.html - SQL Examples · In-browser schema and insert-content examples for relational databases
setup.html - API Snippets · Client snippets for building a custom backend API around the dataset
setup.html - Prompt Templates · Templates for generating backend services and integrations with LLMs
setup.html
External Sources
Upstream provenance and downstream consumer targets
- ExerciseDB · Original exercise data source re-hosted and translated in this repo
- Custom Backend · External database-backed app or API built from the dataset
Connections 19
- ExerciseDB → Exercises JSON: feeds · Upstream exercise content is curated into the repository dataset
- Exercises JSON → Exercise Record: defines · The JSON array is organized as structured exercise records
- Exercises JSON → Translations: contains · Authoritative multilingual instructions live in the dataset
- Exercise Record → Naming Link: references · Records point to media through the shared naming convention
- Naming Link → Thumbnails: matches · Thumbnail filenames align to record identifiers
- Naming Link → Animations: matches · GIF filenames align to record identifiers
- Exercise Explorer → Search & Filter: uses · Browser explorer performs in-memory search and filtering
- Search & Filter → Card Grid: renders · Filtered results are shown as cards
- Card Grid → Detail View: opens · Selecting a card reveals the detailed exercise view
- Exercise Explorer → Exercises JSON: loads · The explorer reads the dataset directly in the browser
- Exercise Explorer → Thumbnails: shows · Cards use thumbnails for browsing
- Exercise Explorer → Animations: plays · Detail view displays the exercise animation GIF
- Setup Guide → SQL Examples: guides · Developer onboarding includes schema and insert examples
- Setup Guide → API Snippets: guides · Developer onboarding includes backend/API client snippets
- Setup Guide → Prompt Templates: guides · Developer onboarding includes LLM prompts for service generation
- Setup Guide → Exercises JSON: uses · Setup examples are derived from the authoritative dataset
- SQL Examples → Custom Backend: targets · Generated SQL is intended for import into an external database-backed app
- API Snippets → Custom Backend: targets · API guidance points toward a separate consumer application
- Prompt Templates → Custom Backend: supports · Prompt templates help generate the external backend implementation