This is the developer documentation for a tic-tac-toe game that refers to an instructor-provided API for user authentication and game storage. Code was primarily written using HTML, SCSS (CSS) and JavaScript on the Atom text-editing platform, along with git and other software.
The Github repository for this project is located here: https://github.com/carlojacob/game-project-client
Initial wireframes are displayed at the following link(s):
Tic-Tac-Toe user stories:
- As a game player, I want to play tic-tac-toe.
- As a first-time player, I want to read Instructions so that I can win tic-tac-toe.
- As a first-time user of this game, I want to create a new account so that I can have history of my tic-tac-toe playing.
- As a returning player, I want to log into my game account so that I can play more.
- As a returning player, I want to see how many games I have won and lost so that I can improve my win percentage.
- As a returning player, I want to start a new game or resume a game in progress so that I can continue to play.
- As a returning player, I want to change my password occasionally so that my statistics are secure.
- As a returning player, I want to log out of my game account so that no one else affects my statistics.
The following technologies were used to create this project:
- HTML.
- SCSS.
- JavaScript.
- JQuery.
- Atom.
- Git.
- Github.
- Grunt.
- Curl.
- AJAX.
- Bootstrap.
- Instructor-provided API.
This project started by developing an initial project scope, which was modified as necessary during development:
- Developed wireframes for desired user interface.
- Made considerations for how the game board would be displayed.
- Placed heavy emphasis on meeting project requirements instead of making it "look good". Initially applied minimal SCSS to ensure that the user experience met requirements, and additional styling was added near completion as time permitted.
- Placed heavy emphasis on performing new tasks in new branches and making regular commits. Branch names explain what changes were made on that branch, and often include just one commit.
- I did not get to many of the stretch goals that I had looked up.
The following improvements could be made:
- Improvements to interface for user-friendly experience.
- Modals for user inputs (authentication information).
- Animations on button clicks and game completion, etc.
- Add display of game instructions to user.
- Provide additional pseudocode for understanding what is being done.
- Refactor code in
/assets/scripts/game/ui.js
to a newevents...
document for improved readability. - Output additional game data on Game History request.
- Game History in tabular format.
- Create multiplayer functionality.
- Resolve display issues on mobile in landscape orientation.