Giter Site home page Giter Site logo

zero-to-mastery / breads-client Goto Github PK

View Code? Open in Web Editor NEW
46.0 46.0 59.0 2.97 MB

Keep track of what you read online and see what your friends are reading.

Home Page: https://www.breads.io/

License: Other

HTML 0.88% JavaScript 9.87% CSS 34.37% TypeScript 54.86% Shell 0.02%
react typescript

breads-client's Introduction

zero-to-mastery

Zero to Mastery Open Source

Screenshot

breads-client's People

Contributors

alexk251 avatar ashutosh00710 avatar aubundy avatar dependabot[bot] avatar hjpunzalan avatar jorgepasco1 avatar kenny-vu avatar lundeen-bryan avatar mattcsmith avatar mbogdanel avatar mcflav avatar richardbacon avatar shawnk0723 avatar utkarsha-optimus avatar yejin0216 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

breads-client's Issues

Add tags to user aside

  • Top tags - display all in order of most used
  • Most recent tags - display all in order of most recently used
  • selectors for correct tags
  • when clicked, filter readings list to display readings with that tag

Update reading from user profile

Users should be able to filter in order to see all readings that didn't extract data correctly, and be able to update those readings from their profile

Begin implementing Redux style guide

https://redux.js.org/style-guide/style-guide

  • structure files as feature folders or Ducks
  • normalize complex nested/relational state
  • use static typing
  • Do not mutate state
  • Reducers must not have side effects
  • Do not put non-serializable values in state or actions
  • only one redux store per app
  • use Redux Toolkit for writing Redux Logic
  • Use Immer for writing immutable updates
  • put as much logic as possible in Reducers
  • reducers should own the state shape
  • name state slices based on the stored data
  • treat reducers as state machines
  • model actions as events, not setters
  • write meaningful action names
  • allow many reducers to respond to the same action
  • avoid dispatching many actions sequentially
  • evaluate where each piece of state should live
  • connect more components to read data from the store
  • use object shorthand form of mapDispatch with connect
  • call useSelector multiple times in function components
  • use Redux DevTools extension for debugging
  • use plain JS objects/arrays for state

Video info extraction

Users should be able to save a video and the listitem should display the video title, description, number of times watched by breads users, and video watchtime

Success alerts

User should see a success alert after the following actions:

  • uploading an article
  • updating a reading
  • deleting a reading
  • following a user
  • unfollowing a user
  • updating user profile

Followers tab and list

Users should be able to see who follows them.

A tab should be placed next to the 'Friends' tab on their user aside

User aside display error

The user aside flashes the incorrect user for a brief second when switching between Global, Your Reads, and Subscriptions tabs

Performance Updates

  • optimize images
  • optimize delivery
  • critical render path
  • code splitting (Part 2)
  • React Performance Optimizations
    • Change out moment.js
    • Create notifications component so the whole navbar doesn't rerender on notification updates
    • why do components render multiple times? Should I change how data is loaded? they should render twice
    • add react bootstrap
    • add react window
  • PWA checklist
  • caching

WebPageTest Feedback

PageSpeed Insights Feedback


See above

User Aside

The User Aside should change based on the readings list the user is viewing - Global, their own, subscriptions, another user's, etc. Right now it only changes between their own and another user's.

When on Global and Subscriptions, the user should see stats based on the last 24 hours of readings.

Multiple routing bugs

  • When user switches from one user's readings list to another, it doesn't load
  • When user updates their info, it displays in readings, but not in user aside
  • User's notifications hit 0 only after refresh
  • User should see their new reading without being sent to global page

Ads

Add advertisements to breads.

Right side of screen
every 10-20 readings

Update old reads

Old reads do not display meta info like article image and description

  • Add update button for each reading
  • make visible only to certain users
  • a month

Refactor code for more clarity

make code more readable by doing the following:

  • more, and clearer, variable names (e.g. comparisons inside if statement should be put inside variable
  • group by function - global reading list component has too much spaghetti code
  • (for backend) - turn model classes into modules

Reading form location

User should see the reading url form at the top of the webpage whenever on mobile.

Use the order property to move it from the bottom

Updating user info

Info user should be able to update:

  • Image
    • (should be default image when account is first created)
    • crop
    • rotate
  • first name
  • last name
  • email
  • username
  • password
  • delete

Save article feature

Users should be able save an article to read for later.

Listitems should display a tab for number of times an article is currently saved to read for later

Default Text

The user should see a default text placeholder whenever they don't have any readings, subscriptions, and when the article title is blank or the same as the domain name

Update tags in List Item

  • When a user clicks on a tag, app should display every reading with that tag

  • Tag name should be displayed in Title with tag reading stats

  • Tag list on a List Item should be scrollable or expandable

  • User should be able to edit tags:

    • add
    • update
    • delete

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.