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.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.
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
| Layer | Technology |
|---|---|
| Runtime | Node.js 18+ |
| Framework | Express 4.21 |
| Database | MySQL via mysql2/promise (connection pool) |
| Auth | bcrypt (password hashing) + jsonwebtoken (JWT signing) |
| File Upload | multer (profile avatar uploads) |
nodemailer (password recovery SMTP) | |
| Security | helmet (HTTP headers) + express-rate-limit (brute-force protection) |
| Frontend | HTML5 + CSS3 + Vanilla JS (served as static files by Express) |
| Charts | Chart.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.
