Skip to content

🚀 Where we build the application and set up our AWS config

License

Notifications You must be signed in to change notification settings

akashsiddamshetty/platform

 
 

Repository files navigation

The Chess Centre

Platform

PRs Welcome Codacy Badge Version Closed Issues Open Issues

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

Table of Contents

Motivation

The Chess Centre 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.

To support this goal a dedicated centre has been established for players to come, learn and play the game face to face. Seamlessly linking the physical face to face game at our fantastic venue with our digital platform, enabling new and existing players to participate and track their progress effortlessly.

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 [email protected]:chess-centre/platform.git && cd platform

Change directory to the root of the React application:

$ cd chess-centre-app

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

$ git fetch && git checkout develop

Install dependencies

$ yarn install

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
  • React
  • Tailwind CSS
  • GraphQL
  • Node
  • DynamoDB

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

💻

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

About

🚀 Where we build the application and set up our AWS config

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 87.7%
  • HTML 11.6%
  • Other 0.7%