Skip to main content

Documentation 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.

Blackterz is a full-stack web application for managing physical training. The backend is a REST API built on Node.js + Express backed by MySQL, while the frontend is a dark-mode single-page app written in plain HTML5, CSS3, and Vanilla JavaScript — no build tools or frameworks required. All workout session state is persisted automatically, so users never lose progress even if they close the browser mid-session.

What You Can Do with Blackterz

Routine Management

Create, edit, and delete workout routines with soft delete. Supports default recommended routines assigned automatically after onboarding.

Live Training Sessions

Interactive cards with weight/rep inputs per set, completion checkboxes, auto-save drafts to localStorage, and a rest countdown timer between sets.

Exercise Catalog

64 exercises with full-color AVIF images and MP4 video playback via AscendAPI. Real-time search by name or muscle group.

Progress Charts

Chart.js graphs showing weekly volume (kg) and max weight per exercise. Paginated session history table included.

Personal Records

Statistics endpoint tracks personal records and progression data per exercise across all completed sessions.

JWT Auth + Email Recovery

Secure registration and login with bcrypt password hashing and signed JWTs. Password recovery via Nodemailer with time-limited reset tokens.

Tech Stack

LayerTechnology
RuntimeNode.js 18+
FrameworkExpress 4.21
DatabaseMySQL via mysql2/promise (connection pool)
Authbcrypt (password hashing) + jsonwebtoken (JWT signing)
File Uploadmulter (profile avatar uploads)
Emailnodemailer (password recovery SMTP)
Securityhelmet (HTTP headers) + express-rate-limit (brute-force protection)
FrontendHTML5 + CSS3 + Vanilla JS (served as static files by Express)
ChartsChart.js 4.4.1 (CDN)

Prerequisites

Before installing Blackterz, make sure you have the following available:

Node.js 18+

Required for native --watch flag used in development mode (npm run dev). Download from nodejs.org.

MySQL 8+

The application uses a database named fitness_app. MySQL 8+ is recommended for full JSON and window function support.

npm

Included with Node.js. Used to install all backend dependencies listed in package.json.

RapidAPI Account (optional)

Required only for exercise video playback. Subscribe to “EDB with Videos and Images by AscendAPI” on RapidAPI. The free tier provides 2,000 requests/month.
The MySQL database is named fitness_app — not blackterz. This name comes from an earlier project that was reused as the foundation for Blackterz. You must create the database with this exact name before running migrations or the server will fail to connect.

Where to Go Next

Quickstart

Clone the repo, seed the database, and have the server running in under 5 minutes.

Configuration

Full reference for every environment variable in .env.example.

API Reference

Explore all REST endpoints, request bodies, and response shapes.

Architecture

Deep dive into the MVC structure, SQL transaction patterns, and frontend state management.

Build docs developers (and LLMs) love