GithubHelp home page GithubHelp logo

doodlehead / tierlist Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 6.52 MB

Quickly build a tierlist for your favourite TV shows, movies, anime or manga. Written using Typescript and React.

Home Page: https://doodlehead.github.io/Tierlist/

HTML 1.69% CSS 1.70% JavaScript 6.14% TypeScript 90.47%
tierlist react typescript jikan

tierlist's Introduction

Tierlist creator

Create a tierlist for your favourite tv shows, movies, anime or manga. More item types may be added if I can find public APIs for them.

https://doodlehead.github.io/Tierlist/

What's a tierlist?

Tierlists are just charts where the items are sorted into tiers based on how "good" that item is. Originally used rank video game characters' viability in a competitive setting, its usage has spread to pretty much anything: fast food chains, candy, and of course fictional characters.

For example, a quick Game of Thrones tierlist I made with my app. S-tier meaning I love the character, C-tier being neutral feelings, and F-tier being hated.

Game of Thrones tierlist example

P.S. the chart above only considers seasons 1-7. ๐Ÿ˜‰

Implementation details

  • Built using Typescript and React
  • Firebase backend, check it out here
  • The majority of components are functional using React Hooks
  • CSS styling is written with mobile-first in mind
  • Component library: material-ui
  • TV show and movie data fetched from theTBDB's API
  • Anime and manga data fetched from Jikan's API
  • Static front-end served using Github Pages

TODO

  • Refactor ListMaker because it's getting big
  • Manage/delete old localStorage data? Have a delete button?
  • Paginate search results for TVDB API requests
  • Have a "show more" option for Jikan API requests
  • Take a look at some good open-source Typescript React projects for inspiration on proper application folder structure and organization
  • How to handle the refresh use-case when deployed to Github Pages?

Future changes

  • Customizable tiers, add/remove and rename
  • Customizable appearance of the list
  • Fast tier assignment using right-click
  • Custom images upload
  • "Fork" a tierlist
  • Use a state management library like Redux or MobX (if needed)
  • Progressive Web App?
  • Automated testing? (Cypress? Jest?)
  • Use CI + CD?

tierlist's People

Contributors

doodlehead avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

tierlist's Issues

No API, hard coded tierlist demo

  • If APIs are down, I can still demo the app using some hard-coded tierlist data I pick myself.
  • Ideas:
    • Shapes
    • Fast food
    • Candy
    • Programming languages
    • etc.

API connectivity checker

Motivation/Background

  • The APIs that my app depend on are not that reliable and frequently have downtime
  • I want to make it clear that any performance issues that are caused by the shaky APIs are not my fault
  • With some sort of API connectivity checker on the homepage the user will know what kind of functionality to expect given the status report

Specification

  • TODO

Example status pages:

Technical Review

  • TODO

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.