This is a new UI interface for a Shareholder game that can be seen at http://shareholdergame.com/
Goal: Elimination of Adobe Flash
Basic requirements
Frontend
Backend
Deployment
This project was bootstrapped using create-react-app
tool, see REACT-APP.md file for instructions on what else can be done.
Bootstrap 3.x and react-bootstrap projects are used to style the components. Bootswatch themes are compatible with Bootstrap 3 and can be an option for "non-standard Bootstrap look" in the future.
React router is used to do front-end routing. In order for it to work with Bootstrap, react-router-bootstrap
is used with <LinkContainer to="...">
wrapper.
One of the core goals of the project is to make sure it supports multiple languages and other internationalization rules (e.g. date formats and etc.), we use react-intl
module which is part of FormatJS to accomplish that.
Use <FormattedMessage>
component to represent all displayed strings.
In case when you need to pass a string as a prop to another component, you can use injection API's formatMessage()
function to accomplish that.
To generate a list of strings from code when you added new messages, use /scripts/translate.js
script to generate /src/locales/data.json
file with all english labels (which is a default), but keep in mind that it will erase all current translated values from it so you might want to back it up before doing so. This script needs to be improved to make it less crazy of the process.
You can help with translation efforts for this project without being a developer, just edit /src/locales/data.json
to improve / add translation for messages that are not translated yet.
ESLint is used together with airbnb JavaScript styleguide as industry de-facto standard for quality control.
Prettier is used for automated code formatting within editors that support it.
Install corresponding plugins for you text editor to enable automated style error messages and code formatting.
Visual Studio Code is one of the best editors (more like IDE) with support from a large company (Microsoft) with unusual for them open source stance. If you never trusted MS to produce open software, this time it might be worth it, go check it out.
Atom is another open source editor created by GitHub team.
On a todo list is to enable automated formatting upon commit.
This project is licensed under MIT license