Annoyed with the constant crossing out of levels when keeping score on paper and pencil only to lose track of player attributes throughout the game, I built a game tracker application to manage current level, combat bonuses, discard eligibility, and other player attributes.
- Implement
useContext
hook to manage the state of the game progress and all player data - Implement
TypeScript
to add static type-checking - Implement
useEffect
hooks to react to data changes and update player cards accordingly - Implement
useLayoutEffect
to synchronously handle certain state updates to prevent element flickering - Persist game data in
localStorage
and reload the game progress on refresh, if available - Create unit tests for all components using
Jest
andReact Testing Library
to achieve 100% code coverage - Use
react-router
to handle routes and navigation - Explore improving the accessibility and keyboard navigation using
ARIA
attributes
One of my main goals was to implement testing using jest
and react-testing-library
and get my test coverage to 100%.
- Clone this repository.
- Install dependencies with
yarn install
- Start app with
yarn start
Munchkin is a trademark of Steve Jackson Games, and its rules and art are copyrighted by Steve Jackson Games. All rights are reserved by Steve Jackson Games. This game aid is the original creation of Cynthia Dacey Nolan and is released for free distribution, and not for resale, under the permissions granted in the Steve Jackson Games Online Policy.