dd82f461be6db124283f494643d7fe50d8a5ae6f
- Create database tables: workout_program, program_session, person_program_assignment.
- Add Flask blueprint `routes/programs.py` with routes for creating, listing, viewing, and deleting programs.
- Implement program creation form (`templates/program_create.html`):
- Allows defining program name, description, and multiple sessions.
- Each session includes a name and dynamically added exercise selections.
- Uses `tail.select` for searchable exercise dropdowns.
- JavaScript handles dynamic addition/removal of sessions and exercises.
- Implement backend logic for program creation:
- Parses form data including multiple exercises per session.
- Automatically finds or creates non-person-specific tags based on selected exercises for each session.
- Saves program and session data, linking sessions to appropriate tags.
- Implement program list view (`templates/program_list.html`):
- Displays existing programs.
- Includes HTMX-enabled delete button for each program.
- Links program names to the view page using HTMX for dynamic loading.
- Implement program detail view (`templates/program_view.html`):
- Displays program name, description, and sessions.
- Parses session tag filters to retrieve and display associated exercises.
- Update changelog with details of the new feature.
Workout tracker
Track topsets over time.
Setup
Install python>3
Install dependencies
$ pip install -r requirements.txt
Enable development mode
PS $ENV:FLASK_ENV='development'
Set database url, either setup postgres database locally use migration script or expose deployed one
$Env:DATABASE_URL = 'postgres://postgres:***@***:***/***'
Start application:
flask run
Features
- Track topsets for each workout
- Multi user
- Authentication/Authorisation
Description
Languages
HTML
43.9%
Python
35.5%
Jupyter Notebook
18.8%
PLpgSQL
1.2%
CSS
0.6%