A responsive single page web application using react, redux, jest, enzyme, webpack, express, scss, google-material design icons. This project does not use libraries such as jquery, bootstrap. Also backend has not been used in this project, all application states are stored in browser memory.
- ReactJs: To create user interface and view components
- Redux: For application's state management on client side
- Webpack : As module bundler and static assest generator, to convert jsx, and es6 code to vanilla javascript with the help of babel
- Express : To serve the generated javascript module bundle, html, css via node.js based server
- Jest and Enzyme : For unit testing
- Scss : For styling the user interface
- Html : For view markup and layout
- babel : To use latest es6 features and jsx to js transpilation
- npm : To use nodejs based packages and run node scripts
- nodejs : For node run time envoriment and express server
- localStorage : In browser memory to store app's state
- Google material icons : For using font based icons in the project
- Other tools : Vim, and Chrome, firefox, Chrome dev tools, redux-dev tools
Two column responsive layout, mobile friendly
- Header
- Footer
- Sidebar
- Content
Just display the static content.
-
It contains the leader-board ( Hall of fame ) where top 10 players name along with their scroe in descending order is displayed.
-
It can be collapsed/expanded when clicked on leader-board header.
-
It only shows the top 10 players.
-
It is updated as soon as new player is added to the leaderboard after finishing the game.
-
It contains the components where current game being played and current level player has reached is shown.
-
When user has ended the game or reached the maximum possible game level then player form is shown to enter the player name.
-
Player may or may not enter the information. If player enters the name then his/her score is saved on leader-board list and displayed on leader-board.
-
Player may start the new game again after entering the player name or skipping it from this page.
node : 6.x.x or above npm : 3.x.x or above
First Go to Project directory
cd ~/Spotter
then
npm install
It will run the test cases written for this project from 'test' directory.
npm run test
npm run start
Open the localhost in browser
Open the KulrSpottr in browser
npm run dash
It will run the game playing script to win the game automatically.
It will select each cell one by and in case found the correct cell it will continue to the next
level. This process will be continued untill all levels are finished. I have used test driven approach for this.
npm run gameplaybot