Final Project Instructions

Note: Any external resources and/or AI tools used in the development of your final project must be clearly cited/acknowledged in your submission.

Project Description

You are tasked with creating a comprehensive data solution and accompanying report for a professional sports organization. This tool will comprise analytics models and metrics that inform critical operations decisions and answer a specific question from one or more of the following categories:

  • Talent evaluation
  • Player development
  • Strategic decision making
  • Player acquisition strategy
  • Personnel decisions
  • Optimizing roster value
  • Maximizing player performance
  • Player evaluation
  • Prospect assessment
  • Trade analysis
  • Roster construction
  • Asset valuation
  • On-field strategy

Please read the entirety of this document carefully for details on how to prepare the project.

Part 1

  • After you select your topic, please prepare a 1-page proposal outlining (with sufficient detail) how you plan to implement each phase of the data science workflow:

    • Question of interest and relevance to chosen category

    • Import

    • Tidy

    • Transform

    • Visualize

    • Model

    • Communicate

  • This is to be submitted via Crowdmark by Monday, July 14 at 11 AM ET.

  • You are encouraged to take advantage of office hours to discuss project ideas or clarify questions.

Part 2

  • There are three deliverables required:

    • The first is a project report, which is to be written using Quarto Books and published via GitHub Pages.

    • The second is a Shiny web application for your data solution, deployed using shinyapps.io.

    • The third is the complete source code of the project, which is to be uploaded as a repository on GitHub, with an invitation sent to add David as a collaborator so that he can view the code. David’s GitHub handle is awosoga.

  • The URL links to the first two deliverables are to be emailed to (cc ) by Monday, August 11 at 11:59 PM ET. David must be able to access your repository by this time as well. You will receive a response to confirm receipt of your submission.

Technical Requirements

  • Apply modeling techniques learned from previous courses, such as (but not limited to) machine learning, computer vision, simulation, optimization, and data visualization.

  • Perform validation, testing, and manual quality assurance before certifying new models and metrics for use, using meta-analytic criteria where possible

  • Apply correct programming habits such as extensively commented, well-organized, and thoroughly tested code, with version control utilized throughout the project.

  • Write a maintainable, performant, and scalable Shiny application, leveraging reactive programming and similar strong software engineering principles.

Deliverable Requirements

  • Use a .venv or renv virtual environment with appropriate workflows
  • Build a predictive model, and;
    • Store the model in an AWS S3 bucket
    • Interface with the model using a vetiver API
    • Put the API in a Docker container
      • Note: Don’t forget to add your AWS credentials to the Dockerfile.
    • Run the API from an AWS EC2 instance.
      • Note: Although this is highly discouraged in practice, edit the inbound rules of the EC2 Security Group to add a custom TCP that accessible from any source (0.0.0.0/0) for the port that your API will be run through, so that it can be accessed by the shiny app without having to configure SSL/TLS and HTTPS.
  • Use requests or httr2 to access predictions from this model from within your shiny web application
  • Use GitHub Actions to deploy your project report to GitHub Pages, scheduled on push and workflow-dispatch
  • Store all data used in your web application and project report in AWS S3 and interface with it using duckdb.
  • Proper use of environment variables/secrets management for AWS credentials, EC2 public IPv4 address, and other relevant information.
  • Multiple levels of logging for user interactions and external API calls within the shiny web application.
  • User-friendly front-end interface, with straightforward navigation and responsive components.
  • Incorporate a variety of data visualizations using ggplot, gt, and optionally plotly

The content and labs from chapters 1-10 of DevOps for Data Science, lecture notes, and other assigned readings will be quite helpful in accomplishing these items.

Report Requirements

As this report will be submitted as a static webpage, there is no “page requirement”. Instead, the book should be divided into 7 “chapters”, one for each stage of the data science workflow, i.e., following your project proposal outline. Within each chapter, implementation details, justification of methods, relevant unit tests, and related code and figures should be included.

Report Structure: Use section headings and paragraphs to organize your ideas, so that points flow logically from one to the next, as you would when writing a paper. Tables and figures should be numbered, have descriptive captions, and be properly referred to within the text. An appendix can be used, for example, to explain how a user can navigate through your web application.

  • In your index.qmd file, please provide an ‘abstract’ of your deliverable introducing your dataset and describing how your data solution satisfies the criteria of practical significance, technical contribution, and data constraints.

  • Feel free to take advantage of code-folding in order to improve the legibility of your submission.

References and citations: A proper .bib file with corresponding citations should be used for references and included in the report. Cite all original data sources (e.g., provide the URL to the source in your list of references). Any papers/books/websites that you used (e.g., for scientific background of the problem/data, method/analysis ideas, related work that inspired your project, etc.) should be cited appropriately in the text and included in your list of references. Plagiarized work (which includes using material from sources without citation) will receive a zero. The only exception is that references are not required for any material we already covered in class lectures.

Use of AI tools: If you use generative AI tools (e.g., ChatGPT) to help develop your project in any way, you must attach a link to the full log (i.e., the prompts and responses) as an appendix. If you used AI, failure to acknowledge its use will result in a grade of zero. If you are unsure as to whether any particular use of AI is acceptable or not for the project, please see me.

Notes

AWS EC2 and AWS S3 come with 12-month free tiers for new accounts, after which billing will be applied based on usage. You may deactivate all services related to this project after September 1, 2025 to avoid unexpected charges.

Grading

55 marks total:

  • 5 for proposal

  • 20 for report

  • 30 for deliverable