Please add some code annotation! Again, this will help your collaborators out!
Coding Strategy
The good :thumbsup:
Great use of a reactive variable inside of your server function :star:. This cleans up the code and makes this run more smoothly!
Needs work :thumbsdown:
If you have a lengthy calculation you can add the busy indicator to your UI. This can help reassure the user that the app is working, and will prevent the user from worrying too much.
The Wait argument is how long o wait before showing the sassy loading message.
* It would also be good to add some internal check in your code that can provide the user with more informative error messages. For example add something like this to your functions code:
if (!is.numeric(x)) {
stop("function_name requires a numeric object to calculate the mean, but you gave us an object that was:, class(x)[1]") ## error message used from Jenny Bryan!
}
* Also consider using the `tabsetPanel()` to clean up your App. As of now you have a lot happening on one page. The title, photo, widgets, and tables are all one one tab and it's a bit much!
* The table is
# **Graphs**
### *The good* :thumbsup:
* Graphs are reactive!
### *Needs work* :thumbsdown:
* Please add a title to your GGplot. You can actually use a reactive title for your graph using like:
ggtitle(sprintf("This graph shows %s, from %s betwen the prices %s and %s", input$typeInput,input$countryInput, input$priceInput[1],input$priceInput[2]))
Since this is already in a renderplot (reactive context) the title will change for you :)
# **Tables**
### *The good* :thumbsup:
* Tables were interactive!
### *Needs work* :thumbsdown:
* Your tables are very large, and should be cleaned up. You have loaded the DT package, but you did not use the power of DT .Using `DT::dataTableOutput()`/ `DT::renderDataTable()` can replace the static table with a interactive/ visually stimulating table. Look (here)[https://rstudio.github.io/DT/] for more details!
# **Creativity & Ease of Access**
### *The good* :thumbsup:
* Easy navigation from canvas to your shiny app!
* Thanks for supplying a link to your sources, and explicitly saying what you had modified.
### *Needs work* :thumbsdown:
* Assignment was completed and provided 4 additional functions that were correct, but there were no extreme wow factors.
* The README should have an explanation of what the app is doing (Think of the 5 W's). This will help orientate the user before they use your App. Also, this README can be used as a sales pitch for your App!
* Try playing around with colours, and other cool shiny app schemes!
Coding Style
The good :thumbsup:
Needs work :thumbsdown:
Coding Strategy
The good :thumbsup:
Needs work :thumbsdown:
The Wait argument is how long o wait before showing the sassy loading message.
if (!is.numeric(x)) {
stop("function_name requires a numeric object to calculate the mean, but you gave us an object that was:, class(x)[1]") ## error message used from Jenny Bryan! }
ggtitle(sprintf("This graph shows %s, from %s betwen the prices %s and %s", input$typeInput,input$countryInput, input$priceInput[1],input$priceInput[2]))
Since this is already in a renderplot (reactive context) the title will change for you :)