Coder Social home page Coder Social logo

donnyroufs / leaguedex Goto Github PK

View Code? Open in Web Editor NEW
39.0 39.0 10.0 5.95 MB

Keep track of played matchups, write down personalized notes, share your leaguedex with others and more!

Home Page: https://leaguedex.com

HTML 0.62% JavaScript 98.94% Shell 0.37% TypeScript 0.08%

leaguedex's People

Contributors

chr-ge avatar dependabot[bot] avatar donnyroufs avatar raxe-robert 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

Watchers

 avatar

leaguedex's Issues

refactor auth

  • Do not renew the refresh token on every time we refresh the access token
  • Add csrf
  • Increase lifespan of access token (3~) min
  • Same origin policy

Refactor notes

Current notes are for testing, let's make it awesome and add the tags functionallity to it.

  • Styling
  • Add
  • Animations ofcourse.

Game detection

  • Detect whether in a game, by clicking on the button
  • If the game_id does not exist, load all 5 champions and make the user decide who he's up against.
  • Somewhere decide the lane
  • When that's done redirect to the actual dex page.
  • Loading indicator match page
  • Refactor backend (Postponed to new issue)

Issues

  • On newly created account, finding a game doesnt work unless you refresh.
  • When loading a second game it crashes because it cant find the gameId

Backlog

  • Detect when a game is over (for now it checks on a 1 game buffer, or if clicked on "match finished".)

Expand on this issue in the near future.

Optimize and expand on the home page.

The home page currently renders all the champions in one go which is bad practice.

  • infinite loading (not neccesary!)
  • lazy loading
  • Replace flex with cssgrid
  • Add animations on hover card
  • Reverse modal animations on close/switch
  • Implement searchbar

Clone someone's dex

Cloning a dex page should "Create" the matchup for you if it doesnt exist and add their notes to yours.

It's an idea that needs some further thinking behind the scenes.

Change current matchup

Perhaps you 've clicked to soon and it's not the matchup you thought it would be.

  • Change lane
  • Change enemy champion

Implement client side auth

Relies on #5

  • Login
  • Creat Account
  • Set a global context for the auth
  • Forgot Password
  • Set Summoner Account upon first login

Home ux

  • When '/' is pressed, make the input field active.
  • Make it obvious when the input field is active.
  • On tab, make it obvious that one of the champion cards is active.

Change champion page

Champion page doesn't require the actual champion name, lore and tags. It should simply show a nice image of the champion with a table of all the played matchups. Please wait with doing this untill #29 is finished.

  • Search functionallity based on championA, championB and lane.
  • Cards of matchups filtered on query

Change database tables

Initial draw was done in a haste, took the time to redesign it.

  • Make new migrations
  • Refactor Backend
  • Refactor Frontend

Expand on dashboard

  • Make Admin
  • Set user inactive (also revokes refresh token)
  • Send them a reset password link
  • Champions played
  • Matchups played
  • Sorting
  • Styling
  • Fun Metrics?

create leaguedex icon

Browser currently shows the react icon, since I made a simplistic logo,
we should create a simple icon for it and use it.

Revamp Matchup Selection

  • Decrease height
  • Add text: "Select your opponent"
  • Increase contrast
  • Implement reverting from matchups

add admin dashboard

View a table of users

  • Username
  • Email
  • SummonerName
  • Region
  • Member Since
  • Champions Played
  • Matchups Recorded

Implement comments for a specific champion

Issue:
You are Garen and you are playing against a Renekton, and you want to write a note that should always be available as Garen, or a note that should always be available against Renekton(no matter who you play).

Solution:
/missing

Style the current table used in the dashboard

Table should be styled and have a searchbar. When this works see if you can make it a generic component so that we can use it on other pages too. you're free to use a different lib.

semantics

  • Form elements do not have associated labels
  • Links do not have a discernible name

Data versioning

Right now the champions data keeps track of the version, but it doesn't actually update it with the latest.
Also there's an endpoint for just the version!

  • Make request to version endpoint and check if valid
  • If not valid, the data endpoints should take in the right versioning and upsert it.

About/ Changelog

  • Implement introduction video with a text variant
  • Add a changelog to the about page that reads from changelog.md

Add multiple summoner accounts

The database is designed in a way that one user account can have many summoner accounts, but there is no functionallity for it as of yet.

Before release; bug fixes & optimization

  • Shared URL for matchups doesn't detect if its on staging or production
  • Change the naming of the "ingame" button.
  • Padding for input fields.
  • Background autofill input fields
  • Placeholder for "summoner account" should be value.
  • Mobile min-height on dex page
  • Champion page layout
  • Dotenv issue for production
  • server responds with 500 instead of 404 for sync and find
  • redirect on found game (need to click twice sometimes..)
  • React helmet

Backlog

Allow users to somehow select the matchup in loading screen instead of having to wait till the game has actually started

Replace Joi lib with recent one

Current one is deprecated, should be as simple as installing the latest dependency.

  • Change to latest dependency
  • Get rid of the hacky password === password__confirmation and add it in the validator.

Regarding to point 2 it's commented out in the bottom.

add docker for development

When done look into implementing it for hosting. Which means we have to refactor the current workflow and vps.

Implement backend authentication

Users should be able to create an account and add their summoner account to it.

  • Routes Protection
  • Create Account
  • Login and send access token
  • Forgot Password
  • Can only set the summoner account once.

Polish backend auth

  • Refactor code, double check status codes and responses.
  • Make sure to remove cookie and refresh token from database if expired
  • Field Validation
  • Renew refreshtoken on accesstoken grant
  • Limit amount of requests.

Field Validation

  • email must be a valid email
  • password must be atleast 6 characters long
  • username must be atleast 6 characters long
  • email & username must be unique

Create champion page

When clicked on a champion, it should route to the champion page and render the given design in Figma.

champions page

  • Render component (view/Champion)
  • Display Lore
  • Display Tags
  • Display Image
  • Mobile
  • Desktop

add tags to notes

The notes can currently have tags assigned to them, but there's no functionality for it as of yet.

Make entire dex public

Give the user the option to make the entire dex page public, and generate a link for it.

Build homepage

Should have a list of all champions with infinite scrolling, the modals are not part of this issue.

  • Mobile
  • Desktop

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.