Lineup and Fielding Schedule


Fielding Schedule


                  


Skills and Drill Library

Find a skill, watch the coaching clip, and use the teaching notes to explain the drill clearly to players.


Find a Skill

Filtered Skills

Library Records


Practice Planner

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:

pool::dbPool(
  drv = RPostgres::Postgres(),
  dbname = Sys.getenv('PGDATABASE'),
  host = Sys.getenv('PGHOST'),
  port = Sys.getenv('PGPORT', '5432'),
  user = Sys.getenv('PGUSER'),
  password = Sys.getenv('PGPASSWORD')
)