Personal Training OS — Design Elements
|
Type
|
Level
|
UID
|
PREFIX
|
REFS
|
Title
|
Statement
|
Rationale
|
|---|---|---|---|---|---|---|---|
|
SECTION
|
1 |
|
|
|
|
||
|
DESIGN
|
1.1 |
|
|
Create all fifteen databases at build time with schema in place, regardless of immediate use. See design-schema section 3. |
|||
|
DESIGN
|
1.2 |
|
|
A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18. |
|||
|
DESIGN
|
1.3 |
|
|
A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2. |
|||
|
DESIGN
|
1.4 |
|
|
People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3. |
|||
|
DESIGN
|
1.5 |
|
|
Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4. |
|||
|
DESIGN
|
1.6 |
|
|
Two completed Training Session seed rows: 5-mile hill repeats and 11-mile long run. See design-schema section 4. |
|||
|
DESIGN
|
1.7 |
|
Parents:
|
|
Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1. |
||
|
DESIGN
|
1.8 |
|
|
Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4. |
|||
|
DESIGN
|
1.9 |
|
|
Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13. |
|||
|
DESIGN
|
1.10 |
|
|
Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14. |
|||
|
DESIGN
|
1.11 |
|
|
Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15. |
|||
|
DESIGN
|
1.12 |
|
|
Training Blocks database with date range, Focus, Status, relations to Goals/Races, and rollups over related Training Sessions. See design-schema section 5. |
|||
|
DESIGN
|
1.13 |
|
|
Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6. |
|||
|
DESIGN
|
1.14 |
|
|
Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7. |
|||
|
DESIGN
|
1.15 |
|
|
Workout Templates composed of Exercise Library exercises via an Exercises relation (satisfying TMP-001's "composed of exercises"), plus a Drills relation to Hockey Drills for hockey templates and an Equipment relation; because the equipment set excludes unavailable gear, no template can require it, satisfying the no-unavailable-equipment rule by construction. See design-schema section 8. |
|||
|
DESIGN
|
1.16 |
|
Parents:
|
|
Exercise Log relating to Training Sessions and Exercise Library, with Person and Date rolled up from the session, plus sets/reps/weight/distance/duration/RPE. See design-schema section 9. |
||
|
DESIGN
|
1.17 |
|
|
Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10. |
|||
|
DESIGN
|
1.18 |
|
|
Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11. |
|||
|
DESIGN
|
1.19 |
|
|
Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12. |
|||
|
DESIGN
|
1.20 |
|
|
Hockey Drills with Category and an Equipment Required multi-select limited to stick, shooting pad, cones, balance boards, and pending stickhandling ball, with no net option. See design-schema section 16. |
|||
|
DESIGN
|
1.21 |
|
Parents:
|
|
Resources reference database with Type, URL, Topic, and Notes. See design-schema section 16. |
||
|
DESIGN
|
1.22 |
|
|
Ownership and cardinality of all relations, ensuring Metrics and Nutrition relate to People and that shoe mileage and hockey load are derivable via rollups rather than manual tally. See design-schema section 17. |
|||
|
SECTION
|
2 |
|
|
|
|
||
|
DESIGN
|
2.1 |
|
|
Availability is enforced by restricting Exercise Library / Hockey Drills equipment option lists rather than modeling an Equipment database, since the requirements mandate exactly fifteen databases and Equipment is not one. |
Keeps to the baselined database list; unavailable gear is unselectable. Alternative (Equipment as a 16th database with an Availability status) is a candidate change request if inventory tracking is later wanted. |
||
|
DESIGN
|
2.2 |
|
Parents:
|
|
Notion has no duration type, so Goal Time / Result Time are text H:MM:SS with an optional numeric seconds field where math is needed. |
||
|
DESIGN
|
2.3 |
|
|
Notion relations are single-target and the two game databases are separate sources of truth, so Training Sessions carry two relation properties disambiguated by Team. |
|||
|
DESIGN
|
2.4 |
|
Parents:
|
|
Metrics/Check-ins are one wide row per person per day, optimized for manual entry; high-frequency wearable streams would use a long-format companion added when an integration lands. |
||
|
DESIGN
|
2.5 |
|
|
The compound seed statuses Training/Registered and Registered/Planned are preserved as literal select options alongside atomic options so the seeds match the requirements exactly. |
|||
|
SECTION
|
3 |
|
|
|
|
||
|
DESIGN
|
3.1 |
|
|
Data lives in the private Notion workspace (not public); integrations request only the minimum scopes. See design-schema automation contract. |
|||
|
DESIGN
|
3.2 |
|
|
Periodic Notion export provides backup and recovery; data stays API-accessible and exportable for portability; no automatic deletion so history is retained indefinitely. |
|||
|
DESIGN
|
3.3 |
|
|
Single-user, low-hundreds data volume keeps rollups responsive; the Notion mobile apps provide low-effort cross-device capture. |