Skip to content

chess-centre/platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OTB Chess

Platform

PRs Welcome Codacy Badge Version Closed Issues Open Issues

This project contains the core source code of The OTB Chess application including its associated services and deployment configuration.

Table of Contents

Motivation

OTB Chess was born through a love of Chess and built for the amazing community which surrounds it. Here we will provide keen chess players who enjoy playing over-the-board chess with a platform to utilise modern, accessible and easy to use features that enables them to easily find upcoming events, register and effortlessly track results of their games and those of others.

Our mission is entirely #NotForProfit so we gladly welcome volunteers.

Objective

Intentionally open and transparent and striving to make it easy to reproduce and contribute to our model, our long term goals include the following technical objectives:

  • πŸ’° Low cost
    • Infrastructure
    • Support
  • 🌻 Scalable
    • White-label (independent deployments)
    • Internationalisation
  • πŸ—οΈ Maintainable
    • Admin capabilities (non-technical users)
    • Documentation (technical / non-technical)
  • πŸš€ Feature rich
    • Embracing other chess projects / useful public APIs

Examples

Getting started

Prerequisites

Clone the project:

$ git clone git@github.com:otb-chess/platform.git && cd platform

Change directory to the root of the React application:

$ cd otb-chess-app

Checkout our develop branch - this is where PRs are merged pre-live

$ git fetch && git checkout develop

Install dependencies

$ yarn

At this point you now have everything you need for the frontend UI, now you need the AWS Amplify backend.

  • Our current practise is to manually set up your AWS IAM user (contact @matt-d-webb for this), providing you with the requisite configuration to pull the necessay backend environment(s).

Example configuration:

const config = {
  aws_project_region: "eu-west-1",
  aws_cognito_identity_pool_id: "eu-west-1:xxxxx-xxxx-xxxxx-xxxx-xxxx",
  aws_cognito_region: "eu-west-1",
  aws_user_pools_id: "eu-west-1_xxxxxxxx",
  aws_user_pools_web_client_id: "123xyz456ABC789dEFg",
};

Once you are setup with an IAM user, add your config in the app root named aws-exports.js

Then pull down the backend environment:

amplify env pull dev

You will now have a development environment! πŸ₯³

Finally, start the project:

$ yarn start # default port 3000

Environments

Env Player API Public API Travel API
Develop mgsigrqo6 bd7p7atax7 qxbqiiv6nc
Staging 21bx1c1zlk vrhqu5b9u6 qrqz8sdqtd
Production ms60qr0ljj zkxiggnvb5 1mif6e1fj6

Tech Overview

The front-end app uses create-react-app and tailwindcss. The backend is entirely serverless using AWS (see Architecture).

  • JavaScript / TypeScript
  • React
  • Tailwind CSS
  • GraphQL
  • Node
  • DynamoDB

Testing

See our published storybook here

Architecture

Overview

Game Broadcasts

Integrations

Key Details
Taking advantage of the fantastic online chess sites, we pull in live data from the following sources:

  • Bullet Rating
  • Blitz Rating
  • Rapid Rating
  • Profile Image
  • Puzzle Rating
  • Online Status

  • Bullet Rating
  • Blitz Rating
  • Rapid Rating
  • Online Status
  • Pgn Game Import

  • Standard Rating
  • Rapidplay Rating
  • FIDE ID
  • ECF Membership Status
  • Recent Game History
  • Latest Rating

  • Train departures
  • Bus departures

Contributing

See our welcome respository for guidelines on helping us develop this platform.

Special thanks πŸ‘

This project uses many amazing open source libraries but for chess specifically, we are grateful for the efforts of:

Pgn Viewer Example

License πŸ“’

License

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Matt D. Webb

πŸ’» ⚠️ πŸ“– πŸ’Ό

jbeasley123

πŸ“–

AndyW359

πŸ–‹

Cat Varley

πŸ€”

Adam Elmore

πŸ’»

AKASH SIDDAMSHETTY

πŸ’»

Arpit Maurya

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!