Blue Ivory Group Software Engineer Challenge - Frontend

Introduction

Create a Black Jack game. This application should allow the user to play against the dealer. Player is alone against the dealer

Requirements

Game functionalities we like to see

  • Create a deck of 3 packs of cards (52x3), containing the data for each card, and providing a way of drawing a card at random from the deck.
  • Draw cards to players until player wants to stop
  • Draw cards for Dealer until hand is bigger than player or more than 21
  • Calculate the score for a given hand.
  • Keep track of the state of the current round and game and showing the appropriate elements on the screen, based on the context.

Please note that we are not necessarily expecting you to build all requirements. Build as much as you can. We are not expecting you to build the full game with no mistakes on the rules. We allow rules to be broken if you are not able to build it in a decent amount of time. (Ace management can be tricky).

Bonus:

  • Animations
  • State management (redux, mobs…)
  • Type checking (Typescript, proTypes…)
  • Responsiveness

Other

  1. Instructions on starting your application
  2. Use git
  3. Test cases (at least unit tests for major functions)
  4. Browser compatibility: Latest 2 versions Chrome, Firefox and Safari / iOS and Android
  5. Instructions on creating a production build

Submission

!!!!Important!!!!

If you submit as a public git repository:

  • Avoid words like “Blue Ivory Group” and “challenge” in your repository.
  • Do not copy any part of this file or any part of the Mock API.

Alternatively, you may also send us a ZIP archive file containing your solution. For fairness’ sake, you must also use Git and include the .git directory in the archive if you submit a ZIP archive file.

If you are so inclined, you can deploy the application onto a remote server (e.g. heroku) in addition to sending us your Git repository.

FAQ

What frameworks/libraries can I use?

React or React Native, We judge your submission on engineering practices (over-engineering will be penalized).

How much time should I spend on completing this challenge?

You can work on your own schedule, but a complete solution is expected within seven days.

Do I need to deploy somewhere?

See Submission.