RShiny Contest 2020: Re-work of GitDiscoverer.com
Hey there, I developed my first Rshiny web app with gitdiscoverer (old version) as part of RStudio Shiny Contest 2019. It's 2020, we have RStudio hosting Shiny contest again this year. I am really excited to be participating again this year and looking forward to all submissions. This year I am re-working on gitdiscoverer.com which is again a very simple web app that allows you to browse trending repositories and developers in R and Python on Github and check out popular machine learning and deep learning projects in R/Python. Over the past year, I have improved my web development skills in RShiny and there can't be a better time and opportunity to build something and get feedback from the awesome community out there.
What's new?
- Browse Popular Machine Learning and Deep Learning (ML / DL) Projects on Github
- Topic Tags (Available in Trending Repositories, Popular Projects tabs)
- Rendering Dyamically Info in Bootstrap cards component
- Sort By Trend, Stars, and Forks
- Disconnect screen for Shiny Servers
Here's the summary of this app
- Front end development: Shiny and Bootstrap,
- Deployment using shinyapps.io
Application Architecture
For Trending Repositories and Trending Developers, I use the following APIs:
For Popular Projects in Machine Learning/Deep Learning tab, I referred this Top Deep Learning Repositories where I make use of Official Github search API to search for repos sorted by the number of stars and following are the keywords I use for searching for ML and DL projects:
ML:machine-learning OR machine learning OR machinelearning
DL:deep-learning OR CNN OR RNN OR "convolutional neural network" OR "recurrent neural network
I understand that a lot can be done to improve this particular feature. I will be happy to take your feedback and improve on it.
Note: Repositories with 50000 stars or more are excluded.
You will find topic tags on trending repos and popular projects tab
Disconnected Screen for shiny Server: Instead of default disconnected sever message, you can show a screen like below using R's sever package. I liked this feature very much
Feel free to play with this project at Rstudio cloud
Here are some few RShiny tips which became very useful when I was building this web app:
- Add an Outline to our app, so that it's easy to navigate within a simple/complex web app when you're making changes and fixing bugs
- One of the tips I found useful while building the app comes from mastering shiny book by Hadley Wickham - Running Shiny apps as background jobs while you make changes to source code in the original R session: https://github.com/sol-eng/background-jobs/tree/master/shiny-job. This was a very useful tip.
- Another useful tip for the mastering-shiny book was reducing complexity of the app which I did by adding helper functions which you can find in Github Repo
I have a few other ideas which I want to work on and integrating those features into this project going forward. Hopefully, I will be able to do that. Thanks for your time.
Credits
- Mastering Shiny By Hadley Wickham
- For Loading screens - John-coene R waiter package
- Shiny disconnected screen using John Coene R Sever package
- Lastly, I want to acknowledge Matt Dancho's - Shiny Developer with AWS course which helped me build the majority of the front end in this web app.