- Python 71.9%
- TypeScript 23.4%
- Shell 3.8%
- Dockerfile 0.6%
- HTML 0.3%
| backend | ||
| deploy/nginx | ||
| docs | ||
| frontend | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
| VERSION | ||
TAPS — Tactical Athlete Performance System v1.0
TAPS is a self-hosted personal performance-management web application for an SR-primary hybrid tactical athlete. It separates observations (what the athlete actually did) from standards (what an external or internal profile expects), allowing one result to be compared with multiple sourced profiles without duplicating data.
v1.0 capabilities
- Athlete profile and target body mass
- Body-mass / composition logging
- Recovery logging (sleep, RHR, soreness, fatigue, pain flag)
- Training sessions with nested exercise performances
- Periodized training blocks and planned sessions
- Canonical performance metric catalog
- Test sessions, batteries, and individual results
- PR/history endpoint and mass-vs-performance data endpoint
- Source-aware standards with OFFICIAL, OFFICIAL_RECOMMENDED, TRAINING_TARGET, HISTORICAL, UNVERIFIED provenance
- SR-primary reference profile
- Public Navy SEAL PST/EPST comparison profile
- Public 75th Ranger Regiment comparison profile
- Public MARSOC preparation recommendation profile
- Football-hybrid testing battery (TE/RB/LB/CB/S athletic qualities; not represented as an official position standard)
- React/TypeScript responsive UI for dashboard, testing, standards, body, recovery, and training history
- PostgreSQL production path; SQLite development fallback
- Docker Compose foundation
Safety / scope
TAPS is a fitness and legitimate athletic/field-skill tracker. It does not attempt to recreate classified training, military authorities, or combat employment. Water-confidence/breath-hold training must be supervised; never perform underwater breath-hold work alone or after hyperventilating.
Quick start
cd backend- Create a virtual environment and install
requirements.txt. python manage.py makemigrations && python manage.py migrate- Create a user:
python manage.py createsuperuser - Seed reference data:
python manage.py seed_reference - Create an AthleteProfile in Django admin and set
sr-primaryas primary profile. python manage.py runserver- In another terminal:
cd frontend && npm install && npm run dev
The frontend expects the API at http://localhost:8000/api unless VITE_API_URL is set.
Key endpoints
/api/analytics/dashboard/ · /api/analytics/compare/?profile=sr-primary · /api/analytics/history/?metric=pull-ups · /api/analytics/mass-performance/
Status
v1.0 source complete. Python source compiles and the framework-independent comparison tests pass. Full Django integration and frontend package builds require installing dependencies; this build environment did not have network package installation available.
v1.2 local web application
Run docker compose up --build and visit http://localhost:8080. Create an account and start logging. Use Export my data to download your personal training history as JSON. See docs/V1_2_RELEASE.md for deployment notes and limitations.