Welcome to the Arrow Game project! This README provides an overview of the stack, features, and setup of the project.
link to the Game: https://smolskaia.github.io/Arrow-game/
The project is built using the following technologies:
- React + TypeScript: For building the user interface with type safety.
- Redux + Redux Toolkit: For state management.
- Material-UI: For UI components and styling.
- ESLint + Prettier + Husky: For code linting, formatting, and enforcing standards in commits.
- Vite: For fast build and development.
- Vitest: For testing.
- GitHub Pages: For deployment.
Here’s a breakdown of what has been implemented in the project:
-
Project Setup:
- Initialized the project with a robust configuration to streamline development.
-
Redux Toolkit Template:
- Set up the initial project structure using a template from Redux Toolkit.
-
Code Quality Tools:
- Configured ESLint for code linting to ensure consistent code quality.
- Configured Prettier for code formatting.
- Integrated Prettier with VSCode for auto-formatting on save.
-
Git Hooks:
- Configured Husky to run pre-commit hooks for linting and formatting checks.
-
State Management:
- Developed business logic using Redux Toolkit.
- Created reducers to manage application state effectively.
-
Component Decomposition:
- Organized the project by decomposing the UI into reusable components.
-
Material-UI Integration:
- Incorporated Material-UI for building a modern, responsive UI.
- Created a UI-Kit with reusable components to standardize the look and feel.
-
Component Styling:
- Styled the components using Material-UI’s system and custom CSS.
-
Additional Enhancements:
- Added a favicon to personalize the application.
-
Testing:
- Wrote and executed unit tests using Vitest to ensure application reliability.
-
Deployment:
- Deployed the application on GitHub Pages for easy access and sharing.
Follow these steps to get the project up and running on your local machine:
-
Clone the repository:
git clone https://github.com/Smolskaia/arrow-game.git
-
Navigate to the project directory:
cd arrow-game
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open the application in your browser:
Visit http://localhost:5173 to see the Arrow Game in action.
To run the tests, use the following command:
npm run test
This will execute all tests defined in the project using Vitest.
The application is deployed on GitHub Pages. To update the deployment, use the following steps:
-
Build the application:
npm run build
-
Deploy to GitHub Pages:
npm run deploy