Select drills from the library to assemble a timed itinerary for a practice session.
Selected Time
Target
Remaining
Persistence Roadmap
This scaffold keeps data in memory for fast iteration. The same records can be moved behind Postgres with DBI, pool, and RPostgres.
Proposed Tables
teams
: team profile and season metadata.
players
: roster records linked to teams.
lineups
: game-level lineup headers.
lineup_slots
: batting order and inning-by-inning fielding assignments.
skills
: title, category, age level, position group, difficulty, duration, video URL, and teaching content.
skill_assets
: optional videos, diagrams, documents, and coach-uploaded media linked to a skill.
practice_plans
: practice date, theme, target duration, and team.
practice_plan_items
: ordered skills or drills and optional coach-specific instructions.
Next Integration Step
Move the reactive drill library and lineup state behind repository functions such as load_drills(), save_drill(), load_lineup(), and save_lineup(). Those functions can initially call Postgres through a pooled connection: