TecKnow / muster-tools

A package for assigning players to tables at multi-table, walk-in gaming events.
GNU General Public License v3.0
0 stars 0 forks source link

v0.1.0 Technical Demonstration #37

Closed TecKnow closed 3 years ago

TecKnow commented 3 years ago

This is a technical demonstration primarily focused on illustrating the use of dependencies.

Limitations

This project does not yet have feature parity with the legacy system using google sheet and google forms.

Supported functionality

The following basic user use-cases are supported:

Packages

The project comprises three npm packages. muster-store, muster-server, and muster-client.

muster-store

The muster-store package contains Redux state slices created with @reduxjs/toolkit which describe how the client stores and interacts with data, and an axios powered interface for interacting with muster-server's REST API.

The muster-client package uses essentially all of the code in this package. The muster-server package needs access to use the Redux action creators to dispatch actions to clients.

muster-client

the muster-client package uses create-react-app, Redux, Socket.io, @material-ui and react-beautiful-dnd to deliver a single page application for interacting with application data.

muster-server

The muster-server package contains a Sequelize data model for persistent application data, and an Express API to expose it. The web server uses socket.io to dispatch events to connected clients to keep them in sync.

Testing

The muster-store and muster-server packages are tested using the Jest testing framework. The muster-client package supports Jest testing as a create-react-app project, but tests are not currently implemented awaiting investigation of UI testing best practices, such as Jest snapshots.