Shiny Flash Cards - 2020 Shiny Contest Submission

Shiny Flash Cards

Authors: Tyler Bradley
Working with Shiny more than 1 year

Abstract: Shiny app and R package that allows users to easily create interactive flash cards. This can be used to help you or students study and memorize important information!

Full Description: The goal of shinyFlash is to provide easy to use, interactive flash cards to help you study! This package contains one primary function: flash_cards. This function will allow you to generate flash cards either in a shiny app or in an interactive RStudio addin.


You can install the development version from GitHub with:

# install.packages("remotes")


There are two main ways to use the shinyFlash pacakge. The first method is through a shiny application and the second is through an interactive RStudio Addin. Both implementations have the same effect although the shiny app has the ability to interactively upload different datasets in the same session.


RStudio Modal

The default mode for the flash cards (i.e. type = "local") will result in the flash cards appearing as a modal in your RStudio window. If type = "local" then the user must specify a data frame using the .data argument or the path to a valid file with the path argument. Whichever is specified, the user must specify the names of the columns that make up the questions and answers. By default, it will look for columns named question and answer, but the user can change the column it looks for using the arguments question and answer.



Shiny app

The shiny app can be launched using the flash_cards function:

flash_cards(type = "shiny")

If the function is called without specifying the .data or path arguments, the app will launch and present the user with a dialog box that can be used to select one of the two default card decks or upload a custom dataset. If the user chooses to upload a custom dataset, it must be either an .xlsx, .rds, or .csv file and the user must specify the column names that contain the question and answer, respectively.

Users can also specify a dataset to the flash_cards dataset using either the .data or path arguments. Just like when specifying a dataset using the shiny application, the specified dataset must have the columns question and answer. If specifying a path, it must be either a .xlsx, .csv, or .rds file.


Flash Deck Data

Valid flash card decks must have a question and answer column. By default, the functions in this package will look for the columns named question and answer. However, the user can specify different column names using the question and answer function arguments. The only requirement for these columns is that they must be characters.

Questions can be repeated multiple times in a dataset with different answers. If this occurs, the function will group together those questions and list them as bullets on the back side of a single flash card.

The qustion and answer columns can also contain HTML tags which will then be interpretted as HTML within the program.

RStudio Addin

This package also comes with three RStudio Addins. Both of these functions call versions of the local flash cards, but differ in the way the user specifies the dataset to be used.

The first addin, shinyFlash, will look through the Global Environment for all objects that are valid flash card decks (i.e. data.frames with columns named question and answer. If there is only one valid flash card deck then the addin will launch using this dataset. If there are multiple valid flash card decks, then the user will be asked to specify which dataset they would like to use in the console.

The second addin, shinyFlash (custom column names), will look through the Global Environment for valid flash card decks similar to the first addin. However this addin, as suggested by the name, will allow for users to specify the question and answer column names as something other than the question and answer.

The third addin, shinyFlash (file), will result in a file system dialog to appear and allow the user to select the file that they wish to uplaod to the function, as if through the path argument.


Category: Education
Keywords: flash cards, education, memorization
Shiny app:
RStudio Cloud:


Full image:

1 Like