Giter Site home page Giter Site logo

lttkgp / falcon Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 10.0 5.73 MB

The frontend of LTTKGP web app

Home Page: https://lttkgp.com/

License: MIT License

HTML 3.48% CSS 0.12% TypeScript 53.24% JavaScript 0.91% SCSS 42.25%
frontend hacktoberfest react sass

falcon's People

Contributors

dependabot[bot] avatar ghostwriternr avatar j-tesla avatar priyanshux avatar rakaar avatar sahil-shubham avatar shouryaveer avatar xypnox avatar

Stargazers

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

Watchers

 avatar  avatar

falcon's Issues

Back button working unexpectedly

Here is a short video depicting unexpected behaviour of Back button. Here is a long video depicting the same issue. In both the videos one can see that the back button works occasionally.

I am facing the same problem in another project. If you know how to fix it, please let me know in the comments. It seems, Reacts router doesn't re-render the component when the query string changes.(ref)

Organize additional information and settings

As the content and the features of the app have increased, the space in the UI has started cramming up. For example consider the #62 About page PR. This will add another button besides the theme switcher to the interface.

As we grow further we may need more pages and configurations. Sticking them to the sidebar will only clutter the interface further. Therefore we need a solution to organize existing configs and links, and have flexibility to add any configs in the future; Without sacrificing the minimal feel of the interface.

One of the solutions is a modal shown on hover located at the bottom of the sidebar:

Frame 7(1)

Frame 6(3)

This modal is designed to take minimal space. We can extend it both horizontally and vertically to add future elements.

The button for the modal is located at the same place as the previous theme switcher thus making it familiar to the older users. It has been moved inside the modal because people don't switch themes regularly, they choose one theme and stick to it throughout.

On mobile this will be a full width and height modal with a close icon to close it. The button to launch it will be at the same place as the theme switcher, beside the page titles.

This modal will also include the post stale status provided by the backend.

I didn't prefer a centered modal. I wanted it to take only as much visual space as it required. Putting it in the center would cover the video lists and the hover to show interaction would not be feasible with this approach.

We will need to test the accessibility of such a modal as this will have to be implemented by hand.

I am also open to other ideas to fit the configs and links in one place/other places.

Add About page

Add an about page to the site to list:

  • About LTTKGP
  • Features
  • FAQs
  • GitHub Org and Slack Workspace links
  • Change-log/Link to a changelog elsewhere

The About page can be added as an info icon above the theme switcher.

The design of the about page should be attractive as it will be the primary source for users to know about LTTKGP.

Add basic documentation

Currently there is nothing in terms of documentation for this project.
Even the Readme is empty.

Add basic documentation for a start with description/usage of custom elements and components.

Add filters in feed

The feed serves as the replica of the feed of Facebook group. Currently it doesn't have any filters to sort and browse the posts. The following filters need to be added:

  • Like Count
  • Date interval
  • Genres

These filters will also be replicated in the search page when it is added.

empty `List` in Home

image
Now, popular endpoint is giving empty list. Hiding empty lists would be a better experiecne to the users rather than displaying empty space with shuffle button which throws error in console on click.

Add additional info in video description

There are few parameters which are still not displayed in the description, the following need to be added:

  • Artist Image
  • Song Art
  • Post data
  • Link to post on FB

Store the result of API calls in redux store

Currently every time a view is visited after the site has loaded calls the API again to fetch the posts. It would be better to store the result of the API calls in the redux store and use those values instead.

If a user wants to fetch the new posts he/she just needs to refresh the page and it will clear the redux store and refresh the posts, thus there is no need to add an auto-refresh.

Scroll to the video if lower in queue

Currently the queue opens at the top even when a song lower in the queue is selected in the list.

Fix the error by adding the scroll if the current index is not the first video.

Create a list for random songs

The /random endpoint returns random songs from the DB. We can create a 'Surprise Me' type of list where the user can listen to random songs that were posted before.

Artist name and some genres are hidden

Artist name and some genres are hidden when the song name crosses into the next line or the viewport dimensions are not large enough.

fsvdbgbdvhrtdv

Screenshot & reported by @thescriptninja

Add a global state for the queue of the current player

The state should be either a redux store or a context store.

It will save

  • the current queue and
  • the current playing song

and should expose functions to

  • change the currently playing song
  • load next set of songs
  • Shuffle the queue and move the currently playing song to the top
  • optional
    • filter queue
    • load history
      • queue history can be stored in localstorage

The state will be necessary in various operations:

  • Load more videos when the end of the queue is reached #50
  • Populate queue when only ID is passed in /video route #51
  • Load next videos in the queue #57
  • Updating the video and queue and automatically handling change of URL. #72
    let changeURLid = (id: string) => {
    if (window !== undefined) {
    if (window.history.pushState) {
    var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + "?=" + id;
    window.history.pushState({ path: newurl }, "", newurl);
    }
    }
    };

Shows "Loading" when its not loading

The backend is giving some errors currently.

Error 1016
Origin DNS error

When the backend fails, the frontend should show some error or info like "check back later." The loading message is misleading.

image

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.