library(sugar)

The following workflow should be considered for the web application’s smooth set up and operation.

Package flow

Set up Google Cloud Platform credentials

Set the Google Cloud Platform credentials as mentioned in “How to set up Google Cloud Platform credentials”. Set aside the Client ID and Client secret for the app.

Create the app skeleton

An R Shiny app skeleton with the following structure is created.

├── ETCXXXX.Rproj
├── app
│   ├── server
│   │   ├── view_as_student.R
│   │   ├── student_server.R
│   │   └── staff_server.R
│   ├── www
│   │   ├── blc.png
│   ├── userinput.R
│   ├── tabs.R
│   ├── app.R
│   ├── Global.R
│   └── googlesheets.R

Set unit information

unit_details<- unit_info(unit = "ETC5521", 
                         name = "Exploratory Data Analysis",
                         semester=1,year=2020,
                         lecturer = c("Emi Tanaka" = "emi.tanaka@monash.edu",
                         "Di Cook" = "dicook@monash.edu"))

Set the app setup info such as details on app maintainer, client id and secret


 setup_info <- setup_info(unit_details,
              client_id="xxxxxxx.apps.googleusercontent.com",
              client_secret="xxxxxx-xxxxxx",
              maintainer="xxxxx@.monash.edu")

Initialize authentication for creating Google Sheets

Initialize the authentication for creating Google sheets for storing information on students with their attendance and grades as well as authorized staff members

initiate_auth(setup_info)

Add the classes and assessment information

The information on the assessment should be in a dataframe as per the format below with the same column names and data types.

  • Column names of assessment : “Assessment”,“Weightage”,“Total Marks”
assessment <- readr::read_csv("assessment.csv")
#>   Assessment Weightage Total.Marks
#> 1   ASSESS 1        25         100
#> 2   ASSESS 2        25         100
#> 3   ASSESS 3        25         100
#> 4   ASSESS 4        25         100
  • The schedule should be given in the format of a character vector with the unique names of the classes such as “Lecture A”, “Lecture B”, “Tutorial A” and so on.
#> [1] "Lecture A"  "Lecture B"  "Tutorial A" "Tutorial B"

Create Google Sheets for the unit

Attendance sheet : Google sheet for storing attendance of student
create_attendance_sheet(unit_details,schedule)

The created google sheet would contain the separate sheets for the classes mentioned. The dates should be entered horizontally as per the schedule of each classes.

Grade sheet : Google sheet for storing attendance of student
create_grade_sheet(unit_details,assessment)
Student sheet : Google sheet for storing information on student such as name and Email Id
create_student_sheet(unit_details)
Authorization sheet : Google sheet for storing name and monash email id of authorized staff members. Only authorized individuals can access the app

For ensuring uniqueness of the sheets,a unique id is created for the unit with its code, the semester period and the year. For example , ETC5521S12020Attendance denotes Attendance sheet for ETC5521 of Semester 1 of year 2020. For smooth functioning of the app, please ensure that the column names of the google sheets are unchanged.

Set up the user specific input such as unit code, client id and secret for the app

user_input(setup_info)

The function writes the user specific input onto the userinput.R file for the functioning of the app.

Launch the app

You can get the google spreadsheet links using the code below if needed.

Host the app on Monash EBS Shinyapps.io

Contact Emi Tanaka to get the application maintainer’s email added to use the Monash EBS shiny account.

For the log out from the app to be smooth, the shinyapps.io link should be supplied in the app.R file at the end. Replace the link “https://ebsmonash.shinyapps.io/sugar-demo-app/” with the newly created one.