Fenster is a chess opening database. The open source client (fensterchess.com) is in this repository. The data is stored on a nosql database, with restricted access. It has a GraphQL API, however, which can requested. All opening data is derived from the github procject eco.json.
Major techs/dependencies are as follows:
- Create React App
- Which is apparently deprecated. Looking into Vite.
- Netlify (web hosting serice)
- Node
- React
- Apollo GraphQL
- chess.js and kokopu
- I'm no CSS maven, so there's probably massive improvements to be made there.
- React memoization to reduce refresh of fetched data
- Tests
- Jest is configured, but there are no tests at the moment
- Cypress would be another option
- Fenster uses several open APIs to fetch opening data
- A master games server with an open API has yet to be found
A local client can be spun up using netlify dev
(once netlify_cli
is installed). Code changes are automatically reflected in the browser. There is rate limiting in the database for all non-credentialed client origins (aggregate). If the server is no longer responsive to your local test client, it may be because of this. Send an email to Fenster, describing what you are trying to do and you can recieve your own private credential.