Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new app_demo.gif, edit and fix typos for Reflection.md #9

Merged
merged 1 commit into from
Jan 31, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/images/app_demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 9 additions & 5 deletions docs/reflection-milestone3.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
# Reflection

_Milestone 3, **Group 7**_
_Milestone 3_

_**Group 7**_

## What we have implemented
We adopted our `Python` based [dashboard](https://github.com/UBC-MDS/Movie_Selection) from milestone 2 and re-implemented it in `R`. Our layout is largely similar, including the themes and the placement of components. We also incorporated the feedback from our TA and moved some cards around depending on correlation. We recieved positive feedback for the rest of the layout, including the fixed sidebar, so those remain unchanged.
We adopted our `Python` based [dashboard](https://github.com/UBC-MDS/Movie_Selection) from milestone 2 and re-implemented it in `R`. Our layout is largely similar, including the themes and the placement of components. We also incorporated the feedback from our TA and moved some cards around depending on correlation. We received positive feedback for the rest of the layout, including the fixed sidebar, so those remain unchanged.

## What can be improved
One thing that has carried over from the previous milestone as well as from the TA's feedback is the on-click filtering interaction between the top two boxplots with the studios and the scatter plot and the table below. This would provide a streamlined story to the dashboard, as we would go from _less specific_ to _more specific_ as we scroll down.

## Implmentation in `R`
## Implementation in `R`

### Advantages
The `R` implementation comes with the usage of `plotly` through `ggplotly` that greatly improves the look and user experience of the dashboard. `Dash` works well with `plotly` and therefore has a lot of components that work responsively (like `Graph`). The switch from `iframe` to `dccGraph` made our app more responsive. Moreover, `ggplotly` should also help us address the improvement mentioned above since we can now hook up callbacks to click events seamlessly.

### Disadvantages
The development loop of build-run-test is marginally less friendly in the `R` implementation that in `Python` since auto-updating works intermittently. Moreover, deployment with `R` is a more involved process than with `Python`.
DashTable is not compatible with DashBootstrapComponents, so we decided not to build the table and turned it into a plot where most of the information we want to present is preserved. In specific, in place of the previous table, we now have a plot of Top 10 movies by vote average with color's gradient by `runtime`. The eventual result, we opine, has turned out to be even more engaging and effective.

Another limitation we experienced is the development loop of build-run-test is less friendly in the `R` implementation than that in `Python` since auto-updating works intermittently. Moreover, deployment with `R` is a more involved process than with `Python`.

### `Python` vs `R` Thoughts
From our experience, the major drawback of the `R` version is the more intricate deployment process. However, this we only need to learn this once and could possibly automate it. On the other hand, the major positive for the `R` version is the usage of `plotly`. However, it should be easy to re-implement the `Python` dashboard with `plotly` too. The `Python` implementation was more flexible and the designing of the layout was more fluent.
From our experience, the major drawback of the `R` version is the more intricate deployment process. However, this we only need to learn this once and could possibly automate it. On the other hand, the major positive for the `R` version is the usage of `plotly`. However, it should be easy to re-implement the `Python` dashboard with `plotly` as the `Python` implementation is more flexible and the designing of the layout is more fluent.