| library(shiny) | |
| library(bslib) | |
| ui <- page_fluid( | |
| theme = bs_theme( | |
| bootswatch = "lumen", | |
| primary = "#F76900", | |
| secondary = "#2C3E50" | |
| ), | |
| div( | |
| style = "background-color:#2C3E50; color:white; padding:30px; text-align:center;", | |
| h1("Jameson Bodenburg"), | |
| h4("Syracuse Sport Analytics | Syracuse Men's Basketball | Coastal Carolina Baseball | Hyannis Harbor Hawks"), | |
| h5("I am a Sport Analytics student at Syracuse University. Here is my portfolio of analytics presentations and apps."), | |
| br(), | |
| div( | |
| style = "margin-top:10px;", | |
| tags$a( | |
| href = "https://www.linkedin.com/in/jameson-bodenburg", | |
| target = "_blank", | |
| class = "btn btn-primary btn-sm", | |
| "LinkedIn" | |
| ), | |
| tags$a( | |
| href = "https://docs.google.com/document/d/1Vzrw7yTbaKXqmhWGwf_IJsR-AIKe_W7Ebkb-mZ0kPBE/view?usp=sharing", | |
| target = "_blank", | |
| class = "btn btn-primary btn-sm", | |
| style = "margin-left:8px;", | |
| "View Resume" | |
| ) | |
| ), | |
| br(), | |
| div( | |
| style = "display:flex; justify-content:center; align-items:center; gap:30px; flex-wrap:wrap;", | |
| tags$img(src = "https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Syracuse_Orange_logo.svg/1515px-Syracuse_Orange_logo.svg.png", height = "60px"), | |
| tags$img(src = "https://upload.wikimedia.org/wikipedia/commons/6/64/Hyannis_Harbor_Hawks.png", height = "60px"), | |
| tags$img(src = "https://upload.wikimedia.org/wikipedia/en/e/ef/Coastal_Carolina_Chanticleers_logo.svg", height = "60px") | |
| ) | |
| ), | |
| br(), | |
| layout_columns( | |
| col_widths = c(6, 6), | |
| card( | |
| style = "transition:0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.15);", | |
| card_header(div("2025 Saberseminar Presentation", style="font-weight:bold; font-size:18px;")), | |
| card_body( | |
| p("Evaluating situational hitting"), | |
| tags$a( | |
| href = "https://docs.google.com/presentation/d/1AUCwY9W-cg03Fw_kZh9IJbBdtkOnDeiz/edit?usp=sharing", | |
| target = "_blank", | |
| class = "btn btn-primary", | |
| "View Google Slides" | |
| ) | |
| ) | |
| ), | |
| card( | |
| style = "transition:0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.15);", | |
| card_header(div("2025 SABR Diamond Dollars Presentation", style="font-weight:bold; font-size:18px;")), | |
| card_body( | |
| p("Redesigning and creating pitcher relief metrics"), | |
| tags$a( | |
| href = "https://docs.google.com/presentation/d/157xClOjLZghWBXaWaFQKXDOJ0gt8ASTP/edit?usp=sharing", | |
| target = "_blank", | |
| class = "btn btn-primary", | |
| "View Google Slides" | |
| ) | |
| ) | |
| ), | |
| card( | |
| style = "transition:0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.15);", | |
| card_header(div("Catcher Framing Run Value App", style="font-weight:bold; font-size:18px;")), | |
| card_body( | |
| p("Visualization of College Baseball Catcher Framing Run Value"), | |
| tags$a( | |
| href = "https://huggingface.co/spaces/jameson-bodenburg/College_Catcher_FRV", | |
| target = "_blank", | |
| class = "btn btn-primary", | |
| "View App" | |
| ) | |
| ) | |
| ), | |
| card( | |
| style = "transition:0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.15);", | |
| card_header(div("NBA Draft 2025 Player Comparisons App", style = "font-weight:bold; font-size:18px;")), | |
| card_body( | |
| p("App for providing past college player comparisons for 2025 NBA Draft prospects"), | |
| tags$a( | |
| href = "https://huggingface.co/spaces/jameson-bodenburg/25_NBA_Draft_Comparisons", | |
| target = "_blank", | |
| class = "btn btn-primary", | |
| "View App" | |
| ) | |
| ) | |
| ), | |
| card( | |
| style = "transition:0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.15);", | |
| card_header(div("2026 Football Analytics Blitz Presentation", style="font-weight:bold; font-size:18px;")), | |
| card_body( | |
| p("Analyzing the usage of Two-High Safety coverages and optimizing offensive strategy against it"), | |
| tags$a( | |
| href = "https://docs.google.com/presentation/d/16eqZoad4pYFo3hKpV8J5omA6w9gm2Ee2rNPbqiTFxMA/edit?usp=sharing", | |
| target = "_blank", | |
| class = "btn btn-primary", | |
| "View Google Slides" | |
| ) | |
| ) | |
| ), | |
| card( | |
| style = "transition:0.3s; box-shadow:0 4px 12px rgba(0,0,0,0.15);", | |
| card_header(div("NBA Top 100 Voting App", style="font-weight:bold; font-size:18px;")), | |
| card_body( | |
| p("App allowing the members of Syracuse Basketball Analytics Club to vote on the NBA's top 100 players"), | |
| tags$a( | |
| href = "https://huggingface.co/spaces/jameson-bodenburg/NBA_Top100", | |
| target = "_blank", | |
| class = "btn btn-primary", | |
| "View App" | |
| ) | |
| ) | |
| ) | |
| ), | |
| br(), | |
| div( | |
| style = "background-color:#f8f9fa; padding:20px; text-align:center; font-size:14px; color:#555;", | |
| p("© 2025 Jameson Bodenburg | Built with Shiny"), | |
| p("Contact: jameson.bodenburg@gmail.com | 860-247-8481") | |
| ) | |
| ) | |
| server <- function(input, output, session) {} | |
| shinyApp(ui, server) |