/chesscomfrontendtest

FrontEnd Programming Test for Chess.com

Primary LanguageVueMIT LicenseMIT

Nate Perry's Chess.com Front End Programming Challenge Submission

Hello, thank you for reviewing my submission. I have completed the original Application Requirements along with a few extras. This is my first ever Vue.js application, so I apologize if there are Vue best practices that I may not gotten quite right or done consistently. This was a fun project to explore Vue.js and how it works.

The app can be viewed at: https://nateperry.github.io/chesscomfrontendtest/

Local Development

To run the app locally, follow these easy steps after downloading the project.

  • npm install
  • npm run dev

Features from requirements

  1. Clicking the board highlights the square
  2. Clicked squares tracked and displayed as "moves" in the sidebar
  3. Responsive design

Bonus Features

  1. Board Flipping
  2. Evaluation Bar
  3. 30sec Game Clock
  4. Player Avatars
  5. Implement Chess AI Nate-Bot ... sort of
  6. In Game Chat
  7. Checkmate, Timeout, Resign and Draw Games
  8. Game Over Modal
  9. Rematch / New Game
  10. Turn Order
  11. UX Study Performed
    • my roommate played 1 round of this app
    • their feedback led to a new idea for how to defeat Nate-Bot

Application Requirements

  1. Create a page with a chessboard and a sidebar.
  2. On desktop devices the sidebar should be positioned to the right of the sidebar.
  3. On mobile devices the sidebar should be positioned below the chessboard.
  4. The chessboard should resize responsively to consume available space.
  5. Clicking a chessboard square should highlight the square.
  6. Keep track of which squares are clicked and the order in which they're clicked.
  7. Display the information collected from step 6 in the sidebar.

Sources and Attributions

  • Chessboard and Pawn image are from Chess.com
  • Replay icon created by srip on Flaticon
  • Timer icons created by Ilham Fitrotul Hayat on Flaticon