Giter VIP home page Giter VIP logo

chess-insights's People

Contributors

notjoemartinez 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

Watchers

 avatar  avatar  avatar

chess-insights's Issues

Move to nuxt

move everything to nuxt so we can start working on authentication

Custom Search on explore page

  • Search by columns with drop down
  • Highlight active search column
  • Show counts above columns
  • Add export button
  • Make sort columns drop downs

streaks

could be cool to visualize winning streaks, you know, for drama

Mimic archive design for explore page

If it ain't broke don't fix it. Use the chess.com user game archive page design for the explore page.

"Borrowed" designs

  1. Stack usernames with elo in brackets on the side
  2. Indicate what color each user played with an icon to the left
  3. Make the usernames clickable
  4. Show time class as a similar icon on the far left
  5. Show results as stacked numbers with green, red or grey icon
  6. Use tool tip to give further info on the result
  7. Skip move number and accuracy for now
  8. In place put clickable hyperlink to opening used
  9. At the end put human readable date
    Image

Added designs

1. Column Sorting

Integrate excel table like sorting drop downs
Image

2. Full dataset search

  1. Keep search bar at top with a dropdown menu next to it allowing them to select which column to search
    Image

3. Export button

Add export button similar to popup modal on main page

Problems

1. Client side storage for large users

On large enough users the browser hits it's storage limit for the domain and we have to fetch the data again. Given the new changes to the api policy I can't imagine this makes us any friends. Address your incompetence.

1.2 Multiple tabs mixes the data

Same problem as No.1 just more funny. If the user opens another tab it will just replace the data in the other tabs with no warning. This one probably deserves it's own branch

2. Limitations of SPA

How many games can you realistically show at a time? Integrating a dynamic rendering deserves it's own branch but it should be known that this is all rendering on a single page. Maybe add a "back to top" button.

3. Too many openings

There are too many variations openings to make a UI friendly drop down. Maybe borrow from the archive page UI to create a set of common mainline openings as a base taxonomy

Image

Filter by date

It would be cool to filter the insights by date (ie. show data for last week, last month etc.). If you're interested, I might look into contributing a PR to add this.

Prepare for breaking API changes

TLDR

Some time last month the chess.com developers announced they will be requiring developer contact information in the headers of all requests to their public API.

According to the post:

Processes without a user-agent with contact information will return a 403 Forbidden response.

The deadline to integrate this into projects was June 20th (six days ago). I became aware of this yesterday.
Fortunately this seems to have been temporarily delayed as all the requests made by chessinsights.xyz still work properly and I verified this with curl using deliberately empty headers.

Their post doesn't directly address why they are rolling out authentication but reading through the lines on this sentence it seems they are experiencing an unusually high amount of traffic to their endpoints.

The user-agent should include a contact email and/or your chess.com username to allow communication about processes generating abnormal or excessive load on API endpoints

Proposed solutions

1. Add contact info user agent

Obviously this is the most important but there's a small risk of having requests with my user agent blacklisted by trusting random clients carry its reputation. In fact there's nothing stopping anyone from finding a developers email or chess.com username and going nuts with a python script. Maybe that's why this hasn't been rolled out yet?

2. Temp storage of random users

Users spam requests for the same user within a short time frame. Cache the data in a database for a window of time and return it instead of triggering a new archive request every time.

3. Persistent storage of high profile users

Permanently store an archive of celebrity accounts and regularly update them on a crontab to prevent 100 full downloads of GothamChess a week.

4. oAuth for returning users

Requiring oAuth for API access seems to be where this is all going. Getting ahead of it now will help with more ambitious plans for this project that will require authentication anyway.

TLDR #

  • The Chess.com API getting overloaded
  • All requests are now required to have contact info in headers
  • The API is probably moving to authentication based access
  • My plans to adapt to these changes

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.