What will you build?

Sort:
bcurtis

We've got plans for adding more clubs, tournaments, and team match data endpoints, and by popular demand we will figure out how to attach PGNs to games for you to download. Then we'll start talking about how to open up the interactive API.

Help us plan and prioritize everything — tell us what you plan to build! Then we can figure out the data and tools that you need and how to publish it. So what is it? A local database of your games? New analysis tools for everyone? A "Fantasy Chess League" for your friends? A super top-secret app guaranteed to take chess to the next level?

Let us know as much or as little of the idea as you like, but help us understand what data you need to build it right!

 

(Remember to read the README so you can understand any restrictions and how these might change over time.)

walidmujahid

Well, my current idea is to automate the entering of Not-So PRO Chess League season games -live games- into its game database. So that PGN feature would definitely be appreciated :-D

 

My other idea was to track when Not-So PRO Chess League players finishes their live game for the round. Perhaps with the interactive API, if we are able to post to forums -Club forums to be specific-, I could automate the game reporting process so players do not have to do it themselves. Or the reporting system itself could simply be overhauled :-D

Dale00007

My idea is to create club manager which would offer team admins multiple fuctions on management of players base, team roosters for league matches and additional statistics about the club.

mbeaudoin

How about an API rich enough to gather all the information necessary for generating those kind of dashboards:

https://chess.bounceme.net/chess/ligas.php

http://chessleagues.com/2017/wl/

 

Plus: an API for sending messages to club members. Restricted to club admins and club super admins accounts in order to minimize spam.

dogday68

I like to keep my own local PGN database of my games, so it would be great if Chess.com would provide a way for me to download a PGN file of my games -- something that I could call with a java program or a DOS batch script.  I would refresh my local database on a regular basis, so ideally, I would want an easy way to download all the games I have played since the last time I downloaded PGN.  I would also want to be able to control whether the PGN contained time-per-move annotations, because I would want a way to omit that information from the PGN.

MGleason

My idea: https://www.chess.com/clubs/forum/view/idea-clearly-identified-engine-accounts-for-engine-developers 

Of course, this would require approval and some new features from chess.com.

adamoell

Team Scotland runs an annual multi-division chess league, each division being an all-play-all tourney, and a continuous chess ladder. These are both great fun, but running them through forums requires a huge amount of admin work and is not particularly 'user-friendly' for players, either. I don't think the API is quite ready for it yet (would need to be able to issue challenges, for example), but as soon as it is I would love to build the necessary automation for these.

adamoell

Just thinking about leagues and ladders and poking at the API... it would be lovely to see the ability to:

  • Issue challenges between two arbitrary players (or between two players who are members of a given club where admin privileges are available)
  • Post forum messages/news items in a club
  • Send messages to individual players

Adding these to the current features would allow me to automate our leagues and ladders, and make the leagues way more useable for our players. I realise there would also be risks - spam comes straight to mind - and so authentication and maybe club admin privilege checks would have to be baked in. But I'm guessing a lot of that will have to come for the 'interactive' API anyway. Keep up the good work, guys!

skelos

On the admin side, waiting for the match endpoint to:

1. Review how balanced a match is

2. Report timeouts for a match or matches without manually paging through each running match

3. Match players to matches (and vote chess games) so that "dead wood" may be identified

    (Plus probably want access to Live Match and Live Tournment data now that they're a feature, and I know of one live match which has been run. Some teams are considering admission policies: players who don't play daily chess but who would play live matches are reasonable to accept/invite.)

skelos

I've a collection of scripts locating Australian players, fetching their location and mapping that to a city or state. Team Australia has 900+ members, but on a typical day ~14,000 Australians log into chess.com. There seems a little room for expansion of Team Australia, and more than that the city-based teams are driving to get more people and move up in the competition they play in.

I'm posting this here rather than in "working code" as the idea is simple and the devil is in the details, specifically looking up locations (those that aren't "witty" or simply "Australia") to map them to a city or state.

I've spent more time than I like with a web search plugging in potential place names and "Australia" and seeing what comes out.

Slightly to my surprise a lot of people misspelled their location. Even when it's the capital city of the state they live in.

 

This code takes two fetches: first the 24 hours worth of cached country data, and then a per-user lookup for the location. That either needs to take advantage of the allowance for parallel queries, more caching on my side or both as looking up the profile of 14,000 members serially is slow. That's even with cached connections and turning on gzip for data. (I'm yet to look at HTTP 2. The world keeps moving!)

skelos

Re the above post:

1. Caching locations speeds up the run from ~3 hours to a few minutes, or less if the per-day cache on chess.com is not too old. I can choose how long I'm prepared to cache location data, but it doesn't change rapidly. "Oh, I used to live there, but I'm now in ..." is not an unknown response to an invitation!

2. One of our bigger states (most populous at least) asked for me to batch names in sets of 30. They now have their daily invitations in a forum up into the start of March: select, copy, paste, invite.

That's where the location data I have is useful. For people without useful location data ("Australia" is accurate but not precise) who are several times as many, we'll be inviting to the national team or falling back to PMs for most of 2018. happy.png

Who's afraid of Team Moscow?

Note I would not have done this project without tools, and the JSON endpoints are far, far, far superior to web-scraping. I could have done that but don't know that I would have. It certainly would not have been nearly as easy.

skelos

Regarding the interactive API ... being able to issue the invitations without the cut&paste step would have been a very minor improvement but I might not have used it anyway; I'm an admin in one of the Australian city teams, but not Team Australia. So I'm generating data but other people are using it. What we have already was plenty good enough for this project. (Don't let me discourage you now from the interactive API, but mix and match is OK for some projects.)

kgooding

I've got some neat analysis tools that I can now feed in my chess.com history (legitimately).

Some of the features:

* Detect common mistakes in games

* "Where you went wrong!" type analysis; surfacing pivotal moments in the opening of your games (leveraging the latest opening theory as comparison).

* Opponent analyser - finds opponents weaknesses out of the openings, surfaces suggestions on what to play and what to avoid. 

* Tailored puzzles - puzzles that are tailored to you - created from your own games.

BronsteinPawn

Real time moves and the option to send moves.

itzsaga

An Electron app that would run cross platform would be awesome. I don't think I'd build it though, as that'd be a lot of work when Chess.com could wrap the current Angular app and deploy it with much less effort. I'll have to continue to brainstorm though.

Only thing I can think of is a React/Redux (or something for app level state management) app that's pretty much a recreation of what's already available but polls for new moves and updates the Redux store. That in turn updates the local state of the game without a hard refresh needed. This could allow for multiple games to be played on a single page at the same time. A kind of playable dashboard of all games in progress.

knightburgler

I want to build a club recruiting tool with the following features:

1.  Find the most active club members entering daily matches with other clubs.

2.  Out of all my most active daily match playing members find weaknesses in there playing strength. For example, if I have 100 very active daily match players, are only 5 rated between 1600 - 1700?

3. Filter chess.com member profiles to eliminate those unqualified to join my club. Things like high timeout percentage, or someone who as been a member less than 6 months.

4. search for potential new club members that fall between the rating range discovered in #2 above and that meet club membership criteria outlined in #3 above.

 

The result would be a list of chess.com members that fill my needs as far as playing strength is concerned, and that are qualified according to club membership guidelines.

 

skelos

Team Australia and Team Argentina are known to be using api.chess.com to help find people.

Doubtless you'll be reinventing the wheel to a degree, but for both of those it's national flag that determines eligibility so your criteria will be different.

me43

Hi. I want to make an analysis tool for 4pc. I want to calculate the collaborations among top players (the top 50 lets say). Also I have other ideas which I want to implement. I want to make a report on how many times which side won given that they focused on what side. Analyze players play-style and how successful it is against other play-styles. I want to try to create a pay off matrix in a game-theoretic way about simular situations. Is it better to capture a king and lose a queen? When is it better when it is not?
I would create it in Vue because I know this website is written in Vue and I will make it open so chess.com can implement it if you want.
I need something simular to this endpoint https://api.chess.com/pub/player/erik/games/archives but it should include 4pc games.

I tried to download the games from the archive but I cannot understand how are they downloaded. I couldn't intercept the request. I am confused about how the games in the 4pc archive are downloaded. At least if you can tell me how are the games downloaded in my archive that would be great.

skelos

@me43, even on the website I can't find 4pc games. Perhaps they are not yet included in the archives? (I expect some record is kept.) Do you know if there is a way to represent 4pc in an extension to PGN?

me43

@skelos on the website when you go on 4 players chess you can then go to archive and select some game. You can save the game. You can go to one game like this https://www.chess.com/4-player-chess?g=288924 so if you have a game id you can go to it and click on PGN4 and you can save it.