100 Commits
Author SHA1 Message Date
Peter Stockings 0c0bcdc4b6 Show consecutive stall count beside previous performance 2026-10-11 11:30:30 +11:00
Peter Stockings 9612d322eb Preserve observed progression steps in exercise forecasts 2026-09-06 22:46:07 +10:00
Peter Stockings dc0f41cd27 Integrate session note and tag editing and center progress controls 2026-09-06 22:38:11 +10:00
Peter Stockings d5e3e1d930 Reorganize workout view for desktop and compact session details 2026-09-06 17:10:06 +10:00
Peter Stockings 1aa5d7418b Only include custom date inputs when rendered 2026-09-06 16:45:37 +10:00
Peter Stockings 86fade54f1 Learn session forecasts from training blocks and clarify progress UI 2026-09-06 16:20:15 +10:00
Peter Stockings 499d859478 Anchor forecast top sets to latest rep target 2026-09-06 14:59:57 +10:00
Peter Stockings 50ddbced84 Show forecast point dates clearly 2026-09-06 14:55:09 +10:00
Peter Stockings 0dea94fec0 Simplify forecast panel and extend horizon 2026-09-06 14:50:51 +10:00
Peter Stockings d26da9a066 Move forecast map into exercise history 2026-09-06 14:38:30 +10:00
Peter Stockings 7af0202c30 Improve forecast readability and rep targets 2026-09-06 14:30:23 +10:00
Peter Stockings 499ecdc3c2 Add projected top set estimates 2026-09-06 14:12:48 +10:00
Peter Stockings cada28b54b Fix forecast chart continuity and hover 2026-09-06 13:59:50 +10:00
Peter Stockings e2c4196792 Add exercise progress forecasting 2026-09-06 13:53:23 +10:00
Peter Stockings d1100ece80 Add SQL insight dashboard widgets 2026-09-06 13:37:46 +10:00
Peter Stockings ff6a921550 Improve styling of exercise history/sparkline partials 2026-02-28 16:33:43 +11:00
Peter Stockings 57f7610963 Remove requirements.txt 2026-02-27 12:39:13 +11:00
Peter Stockings a401c1a1ab Switch to UV 2026-02-27 12:36:40 +11:00
Peter Stockings b0b42c0d77 Migrate from psycopg2 to psycopg3 to fix SIGSEGV crashes 2026-02-27 12:06:38 +11:00
Peter Stockings 89d0a7fb12 Switch to gevent workers to prevent SIGSEGV 2026-02-27 11:57:41 +11:00
Peter Stockings 37e56559a9 Fix python version formatting 2026-02-27 11:49:11 +11:00
Peter Stockings d9def5c6b6 Add .python-version set to 3.14.0 2026-02-27 11:47:17 +11:00
Peter Stockings ccb71c37a4 Update remaining Flask extensions to versions compatible with Flask 3 2026-02-27 11:46:02 +11:00
Peter Stockings 7aebf8284d Update flask-htmx to fix Flask 3 dependency conflict and remove deprecated runtime.txt 2026-02-27 11:43:03 +11:00
Peter Stockings 28b542e618 Bump up to new python buildpack 2026-02-27 11:28:04 +11:00
Peter Stockings fb07c1d8ed Bump up python version and packages 2026-02-27 11:26:09 +11:00
Peter Stockings 1c51bb6ced Remove dark TW classes from exercise history table 2026-02-27 10:29:54 +11:00
Peter Stockings c4feaa97dd Add remember me cookie so users dont have to login each workout 2026-02-26 23:59:34 +11:00
Peter Stockings 73e02a7b12 Show exercise weekly/monthly progress on exercise history table 2026-02-26 23:53:47 +11:00
Peter Stockings b31ab97cd4 Allow users to toggle to progress table view when selecting an exercise 2026-02-26 23:48:08 +11:00
Peter Stockings 895b813a35 Add button to topsets to show history as a table 2026-02-26 23:26:49 +11:00
Peter Stockings 67009c9603 Add search for activity logs 2026-02-13 00:28:12 +11:00
Peter Stockings 8c08140ad0 Move settings endpoints to separate blueprint 2026-02-08 18:48:03 +11:00
Peter Stockings 31078b181a Split up settings sub pages into templates loaded by htmx to reduce initial load 2026-02-08 18:25:43 +11:00
Peter Stockings a6eca1b4ac Add ability to add/update/delete exercise categories 2026-02-08 16:48:47 +11:00
Peter Stockings ce28f7f749 Add exercise category search in settings 2026-02-08 16:31:05 +11:00
Peter Stockings 31f738cfb3 Improve look of exercise list in settings page 2026-02-08 16:23:31 +11:00
Peter Stockings 0cd74f7207 Create blueprint for exercises 2026-02-08 16:08:30 +11:00
Peter Stockings ef91dc1fe4 Changel LLM model gemini-2.0-flash -> gemini-2.5-flash-lite 2026-02-08 14:51:11 +11:00
Peter Stockings a9f3dd4a38 Embed achievement badges in exercise progress graphs 2026-02-06 00:20:12 +11:00
Peter Stockings 3f3725d277 Improve look of SQL explorer page, and improve validation of exercise selection in workouts 2026-02-04 12:37:05 +11:00
Peter Stockings 09d90b5a1e Round person graph models to one decimal place to reduce svg size 2026-02-04 09:54:03 +11:00
Peter Stockings 3fabde145d Preload csss & js, add skeleton graphs for loading 2026-02-04 09:53:35 +11:00
Peter Stockings 71a5ae590e Add brotli complression, cache graph requests for 5mins and add pagination for person overview 2026-02-04 09:28:18 +11:00
Peter Stockings b4121eada7 Add database connection pooling 2026-02-04 00:03:03 +11:00
Peter Stockings a6a71f3139 Only load graphs when they come into view 2026-02-03 23:52:59 +11:00
Peter Stockings 9998616946 Add defer to hyperscript 2026-02-03 23:52:21 +11:00
Peter Stockings c20f2e2f85 Added safety checks to the graph regression logic in utils.py. This stops those "illegal value" server warnings and makes the math more efficient for small datasets 2026-02-03 23:51:52 +11:00
Peter Stockings ec8d7f6825 Add asset caching 2026-02-03 23:36:58 +11:00
Peter Stockings 2e79ad1b8b Remove more unused js and css 2026-02-03 23:36:30 +11:00
Peter Stockings d223bdeebc Add compression 2026-02-03 23:25:13 +11:00
Peter Stockings 9a2ce6754a Remove unused js libs 2026-02-03 23:24:49 +11:00
Peter Stockings afc5749c82 Reduce size of logo 2026-02-03 23:08:45 +11:00
Peter Stockings 2d1509a0cd Remove dependencies on external fonts 2026-02-03 23:03:29 +11:00
Peter Stockings 83c3cd83a6 Remove SweetAlert 2 library 2026-02-03 22:55:12 +11:00
Peter Stockings db8d39d1eb Fix issue where adding a set would result in two 'Topset added' notification 2026-02-03 22:51:19 +11:00
Peter Stockings 437271bc8c Fix for mobile monthly calendar view so clicking redirects to workout view 2026-02-03 15:21:36 +11:00
Peter Stockings ac093ec2e0 Update programs functionality 2026-02-03 15:10:59 +11:00
Peter Stockings b26ae1e319 Adjust monthly calendar view sets font size 2026-02-02 22:47:25 +11:00
Peter Stockings f53bf3d106 Improve monthly calendar view 2026-02-02 21:51:32 +11:00
Peter Stockings 2b330e4743 Add acheivement badges to monthly calendar view 2026-02-02 20:54:28 +11:00
Peter Stockings bc2a350e90 Show monthly stats in calendar view 2026-02-01 10:55:28 +11:00
Peter Stockings a59cef5c95 Add missing entries to changelog 2026-01-31 15:06:23 +11:00
Peter Stockings d7c9f71d22 Add activity logs table 2026-01-31 14:53:01 +11:00
Peter Stockings 62080b97a4 Ensure only admins can delete users/exercises and users can only edit there own name 2026-01-31 14:19:16 +11:00
Peter Stockings 32719cc141 Add is_admin property to person table 2026-01-31 14:08:47 +11:00
Peter Stockings 32b7527576 Change settings page use tabs 2026-01-31 13:58:22 +11:00
Peter Stockings 9e20976591 Add 'Machine vs Free Weight' & 'Compound vs Isolation' breakdowns for workouts 2026-01-31 13:11:21 +11:00
Peter Stockings 8b276804b9 Add popover for details on muscle distribution in a workout 2026-01-31 00:19:02 +11:00
Peter Stockings 5d2f3986bd Switch muscle distribution to a line chart 2026-01-31 00:11:06 +11:00
Peter Stockings d03581bff4 feat: assign tags to exercises and show muscle distribution of workout 2026-01-30 23:53:04 +11:00
Peter Stockings 78f4a53c49 Fix error when attempting to update set due to missing exercise id param in template 2026-01-30 22:54:50 +11:00
Peter Stockings e156dd30cc Add badges to sets showing stats ie weight/rep increase or how many weeks stalled 2026-01-30 22:42:06 +11:00
Peter Stockings eada1a829b Log LLM usage 2026-01-30 19:45:31 +11:00
Peter Stockings 1c500328d1 Fix AI SQL query generation 2026-01-30 19:37:40 +11:00
Peter Stockings 14d29724f1 Log SQL executions made via UI 2026-01-30 19:17:25 +11:00
Peter Stockings 4dcf589b63 Log login attempts 2026-01-30 19:07:09 +11:00
Peter Stockings b6443bc1e2 Make background of ERD transparent 2026-01-30 18:47:26 +11:00
Peter Stockings ec12072a33 Improve layout of ERD 2026-01-29 19:30:11 +11:00
Peter Stockings d72bb1f30f Make SQL queries require auth 2026-01-29 19:17:35 +11:00
Peter Stockings 722ff4d8e5 Show navbar title even on mobile 2026-01-29 19:01:11 +11:00
Peter Stockings cb08992e19 Make navbar more responsive on mobile 2026-01-29 18:56:41 +11:00
Peter Stockings 036d852aab Add authentication for update/delete endpoints 2026-01-29 18:41:24 +11:00
Peter Stockings e7520035c7 Add script to update password for a user 2026-01-29 18:40:49 +11:00
Peter Stockings 144e555abb Update logo 2026-01-29 17:17:42 +11:00
Peter Stockings 26dda12fff Make login/signup links responsive on mobile 2026-01-29 15:54:09 +11:00
Peter Stockings 2dc2b62d7b Improve performance of calendar view 2026-01-29 15:21:58 +11:00
Peter Stockings c14b43f9ab Revert back to using npx in build step due to dokku build pack using node (Should update this) 2026-01-29 13:26:10 +11:00
Peter Stockings 6fb9ba126f Generate ERD diagram from schema at build time rather then dynamically to reduce dependency on mermaid js library in the frontend 2026-01-29 13:20:45 +11:00
Peter Stockings 509d11443d Remove dependency on tail select component and instead role my own to minmise bundle size 2026-01-29 12:49:12 +11:00
Peter Stockings 04fe00412a Add tailwind build step 2026-01-29 09:30:51 +11:00
Peter Stockings 71315eb719 Speed up people_graphs 2026-01-29 00:41:08 +11:00
Peter Stockings 436eb16c32 Remove plotly in attempt to fix build error 2026-01-29 00:23:20 +11:00
Peter Stockings a94271c790 Remove license from readme 2026-01-29 00:10:55 +11:00
Peter Stockings c607f672c9 Update readme 2026-01-29 00:08:40 +11:00
Peter Stockings 3a0d4531b6 Switch to using polars 2026-01-29 00:05:25 +11:00
Peter Stockings dd82f461be feat: Add workout program management
- 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.
2025-04-24 20:17:30 +10:00
Peter Stockings e7d125d57b Move workout tag logic into tags blueprint 2025-04-21 20:13:30 +10:00
Peter Stockings c88d28b47c Fix issue with newly added workout tags not being rendered 2025-04-20 17:05:32 +10:00
Peter Stockings 7aa7f9b8dc Partial refactor of tags functionality
Still need to move tags db logic to BP and move workout tag logic to BP as well
2025-04-19 21:10:34 +10:00