Git Product home page Git Product logo

shinyfeed's Introduction

shinyfeed

The app is available at https://rszymanski.shinyapps.io/shinyfeed/

Short Description

shinyfeed is a personalized news feed in the form of a Shiny app. Keep all of your news in a single place!

Full Description

shinyfeed is an application that aggregates news from different sources. It makes use of RSS feeds to retrieve posts and displays them in a single view.

shinyfeed provides a grid view which displays items along with an image preview. The tool used to retrieve image previews is built using rvest and makes use of the Open Graph Protocol.

grid-view

For a more compact view of the posts users can also display items in form of a list

list-view

Users can also sort items by titles and publication dates:

sort-command

Installation

This project makes use of renv in order to export used dependencies and rsconnect for deployment. When opening the project R should automatically download the specified version of renv. Next in order to restore the used packages just run:

renv::restore()

To start the app run:

shiny::runApp()

Configuration

Users can host their own aggregated news feeds by specifying rss feeds in the config.yml file:

default:
  rss_feeds:
  - "https://appsilon.com/rss"
  - "https://blog.rstudio.com/index.xml"
  - "https://www.r-bloggers.com/feed/"

The version hosted on shinyapps is an example news feed that aggregates post from different blogs about R and Shiny.

shinyfeed's People

Contributors

rszymanski avatar

Watchers

 avatar

Forkers

hugogit39

shinyfeed's Issues

Fix card positioning

Description: The cards are presented using the fluent UI stack which wraps flexbox underneath. The spread-around variant results in the last row being displayed in a weird way. Switch to a different flexbox variant.

Acceptance Criteria:

  • Cards are displayed correctly and the last row is aligned with upper ones

Add sorting feature

Description: Provide the user with the ability of sorting items, by title, publish date and authors.

Acceptance criteria:

  • After selecting a sorting option items are rendered again and displayed in the correct order

Add routing

Description: Allow the user to click on a specific feed and redirect the user to a route that will show only items from the given feed

Acceptance criteria:

  • shiny.router is configured and items are filtered by the route

Extract rss feed to yaml configurations

Description: Extract rss feed links to configuration files, so others can create their own custom feeds.

Acceptance criteria:

  • Showcase links are extracted to an example configuration

Add list view

Description: Currently users can display posts in form of a grid. Add a list view option, that does not show images and lists each item.

Acceptance criteria:

  • The user after switching the grid view to the list view is presented with a list of all posts.
  • The list presents more or less the same data as in the grid view

Add loader to feed view

Description: Add some kind of loader, so the user is aware of data being loaded into the feed. Look into using the Shimmer component from fluent UI.

Acceptance Criteria:

  • Shimmer is applied to both card views and list views

Add refresh button

Description: Currently users would have to reload the whole app to check for updates. Add a refresh button that allows them to refresh their feed

Acceptance criteria:

  • Button is added to the UI
  • After clicking it the feeds are refreshed

Add link to source code

Description: To the code icon in the right upper corner add a reference to the github repo.

Acceptance Criteria:

  • The user is redirected to the repo after clicking on the info icon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.