Skip to content

Instantly share code, notes, and snippets.

@DillonMurphy04
Last active September 8, 2023 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DillonMurphy04/5518dfdafe74561352fa53ad90594410 to your computer and use it in GitHub Desktop.
Save DillonMurphy04/5518dfdafe74561352fa53ad90594410 to your computer and use it in GitHub Desktop.
GSOC_2023_Final_Report

GSOC Final Report: youdrawitR

Contributor: Dillon Murphy

Mentors: Emily Robinson, Susan VanderPlas, Heike Hofmann

Organization: R Project For Statistical Computing

Project Repository: https://github.com/earobinson95/youdrawitR

Documentation & Examples: https://earobinson95.github.io/youdrawitR/

Goals of the Project

Primary Goals

  • Package the 'You Draw It' tool for flexible use with any real or simulated one-to-one data sets.
  • Set up axes scales automatically from the provided data.
  • Add tool tips to the shiny applet for user training of the task.

Optional Ideas

  • Include the ability to handle more than a one-to-one function (e.g. Add a mode selection to draw confidence interval boundaries).
  • Provide an option to show vertical residuals between points and the user's drawn line to demonstrate least squares regression in an educational setting.
  • Any other ideas for the improvement of 'You Draw It' tool from the contributor

Brief Overview of Work Done (Timeline)

June:

  • Early June:

    • Began the process of packaging the existing 'You Draw It' tool.
    • Created a custom data generator for the drawr function. Allowing tool to work with any data set.
    • Addressed issues like sorting x values and managing non-numeric x values.
  • Mid June:

    • Introduced labeling enhancements for x, y, and title on the drawr function.
    • Started tooltip feature to improve user interaction.
    • Began the integration of multiple regression options, including polynomial and logistic regression.
  • End June:

    • Continued adding regression options, such as loess regression.
    • Added log-scale option
    • Laid the foundation for the shiny app enhancements: introduction of reset functionality, download options, and integration with customDataGen.

July:

  • Early July:

    • Further enhanced shiny app features by adding:
      • Data file input functionality.
      • Diverse regression type choices.
      • Ability for users to draw multiple lines and confidence intervals.
  • Mid July:

    • Focused on improving user experience:
      • Streamlined the app functions.
      • Optimized visuals related to confidence intervals.
      • Allowed selection and saving of specific rendered data.
    • Continued adding/fixing functionality for adding supplementary lines. (gave user option of drawing confidence boundaries and more)
  • End July:

    • Authored comprehensive vignettes and documentation detailing the functionalities and usage of the package.
    • Continued to improve the UI, most notably with color choices and error handling.

August:

  • Early August:

    • Advanced shiny app experience by integrating a color picker.
    • Completed the integration of R dataset options for users.
    • Updated corresponding vignettes.
  • Mid August:

    • Elevated user functionalities:
      • Added copy-to-clipboard feature for easier data accessibility.
      • Offered an option for users to generate random new data sets.
      • Incorporated regression choices into the shiny app's R dataset option.
  • End August:

    • Resolved minor UI issues, making the tool more intuitive and user-friendly.
    • Made final touches to ensure seamless integration of all new features and functions.

Current State

The original 'You Draw It' tool has been transformed and packaged into a user-friendly R package, ensuring easy and flexible usage. All primary project goals have been met: the tool now can handle any dataset using the customDataGen function and offers tooltips within the Shiny applet to guide users. Notable enhancements include the ability to draw supplementary lines with the new line button, input various data types and use a variety of regressions directly through the Shiny app interface, the vast customization options added for the interactive graphic output, and the ability to easily save the data for future usage in either R or Shiny.

What's Left to Do

Continued improvement based on user feedback remains crucial. Potential enhancements could include adding more regression options or even allowing the user to use their own models, and refining the package's user-friendliness.

Challenges During Project

  1. Data Integration: Handling various data inconsistencies and ensuring the tool's flexibility to accommodate diverse datasets was a significant challenge.
  2. Feature Integration: Balancing the integration of new features without compromising the tool's original simplicity and user-friendliness
  3. User Experience: Understanding and anticipating user needs, especially in a shiny app setting
  4. Familiarization with Existing Codebase: Starting with an established codebase required time and effort to understand it
  5. Learning D3.js: With no prior experience with D3.js, diving into it and harnessing its capabilities for the tool
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment