Chess 95 is web application that allows the user to simulate knight movements in N turns. The UI was inspired by windows 95 components which makes a nostalgic feeling when playing with it.
The application was bootstraped with AEboilerplate, a full-stack React/Redux/Node/Typescript web project starter that made development easier, clean and customizable. In addition, other important aspects like deployment and testing were ready to use out of the box.
Most of the architecture was inherited from AEboilerplate with a few additions. The application is divided in two independent applications. The api, which represents the back-end built on top of NodeJs, Express and PostgreSQL database, and the client - a front-end application generated using create-react-app
.
Here's a list describing each technology used by each application:
- Client
- Generated using create-react-app with Typescript and SASS.
- Axios for the HTTP client.
- Redux using the ducks modular approach for state management.
- React Router 4 for routing. * Jest and Enzyme for testing.
- Reselect as a simple redux state selector library. Selectors can compute derived data (allowing store to be minimal as possible), efficient using function memoize and composable (a selector can use other selector as a input). Selectors tend to be easy to test because they are pure functions.
- React95 for UI components inspired by Windows 95 styles.
- API
- Docker and docker compose for running applications locally.
- prettier, editorconfig, and tslint for consistent code formatting.
- Github templates for Github pull request templates.
All code related to Chess 95 application is scoped in a /chess
folder. Here's a list covering it:
- Api
- Services:
api/src/services/chess
- Endpoints:
api/src/api/chess
- Services:
- Client
- Components:
client/src/components/chess
- Containers:
client/src/containers/chess
- Redux:
client/src/redux/ducks/chess
- Selectors:
client/src/selectors/chess.ts
- Api calls:
client/src/api/chess
- Components:
Note: Any interaction with the Chess 95 project is subject to our Code of Conduct.
Chess 95 is a open-source project that welcomes contributions from anyone. If you're interested in helping out, please read the contribution guidelines to get started.
As this project was bootstraped by AEBoilerplate, the contribution guidelines are basically a short version from the full documentation which could be found at this link.
You can find a simple kanban board at the "Projects" tabs shows done tasks and futher work that I consider important to be done. Here's the link to the board, feel free to add more tasks and open an issue so we can discuss more about.
This project is licensed under the MIT License - see the LICENSE.md file for details