Skip to content

chessquest/chess-quest-web

Repository files navigation

Contributors Forks Stargazers Issues


Chess Quest Logo

CHESS QUEST

Thunderdome meets Hearthstone Arena meets Chess...it's CHESS QUEST! Online chess, except you play your next game with just the pieces you last won with. How far will your quest take you?

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Contributing
  3. Usage
  4. Roadmap
  5. User Interface
  6. License
  7. Contact
  8. Acknowledgements

About The Project

Welcome to Chess Quest! This repository contains our frontend Rails app. This app makes calls to the backend Rails API, which makes use of a Sinatra microservice to retrieve data from the Chess.com API.

This project is deployed on Heroku here

Built With

Contributors

Adam Etzion GitHub LinkedIn

Ely Hess GitHub LinkedIn

Grayson Myers GitHub LinkedIn

Liam Cusack GitHub LinkedIn

Max Ribbans GitHub LinkedIn

Mike Foy GitHub LinkedIn

Phil McCarthy GitHub LinkedIn

Roadmap

The team utilized a github project board to organize project issues and cooridnate workflow across 7 members and 3 repositories.

See the open issues for a list of proposed features (and known issues).

System Design

Basic Web Architecture

Architecture

Initial Wireframes

Wireframes

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. We hope that users provide input to improve their experience and that of others.

Versions
  • Ruby 2.5.3

  • Rails 5.2.4.3

Initial Setup
  1. Fork the Project
  2. If you don't have yarn installed locally, you can use Homebrew: brew install yarn
  3. Run yarn to install the chessboard.js and chess.js libraries.
  4. Set up the rails database `rails db:{create,migrate}
  5. Run rake assets:precompile to compile the chess-related assets
    • This allows these assets to be compiled and cached up front rather than compiled every time the app boots
Making a Contribution
  1. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  2. Commit your Changes (git commit -m 'Add some AmazingFeature')
  3. Push to the Branch (git push origin feature/AmazingFeature)
  4. Open a Pull Request

The Chess.js and Chessboard.js documentation can be referenced for additional chessboard methods and examples of implementation, respectively

User Interface

This application allows a visitor to play a practice chess game or log-in via Google OAuth to start a quest.

Welcome Page

After authenticating, we allow users to:

  • Naviagte to the user Dashboard to:
    • View their curent and complete quests
    • View their current and past games
    • View relevant user stats
  • Start a quest via the dashboard if there is not one ongoing

Quest Creation

  • Start a game via the dashboard if there is not one ongoing
    • For a quest's first game, users can select (via a dropdown) to start with all their pieces, in "classic mode" or to start using a board from a selection of famous chess players

Game Creation

  • Within the Gameplay page, users are able to play a game to completion
    • The Chess Quest MVP allows for PvC only

Gameplay

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Project Link: https://github.com/chessquest/chess-quest-web

See the open issues for a list of proposed features (and known issues).

Acknowledgements