- Very scalable, allowing building applications of any size on the top of it
- Has very good performace characteristis, due to working on the top of Object getters ans setter, that allows more fine control on what should/shold not be rerendered.
- No boilerplate
- Has OOP style
- All benefits of static type checking
- No need to write PropTypes
- Possibility to focus on code, insdead of looking into browser console for errors
- Allows to decrease amount of test for type errors (This project does not have tests)
- Can replace "babel" with dozen of plugins, that makes dependencies be much clearer
In this project webpack config is extremely simple, as it is not a focus, but when app grows, webpack allows to:
- Make proper code splitting
- Use "Tree shaking", so that only functions you use will appear in final bundle
- Starting with 3.0 can outputs imports as function(like Rollup) instead of object, that makes final bundle much smaller and gives performace improvements
- The most solid solution for usage with react
- Has a dinamic routing since v.4 So Route is just a react component, that causes routing as app renderes.
- Has everything, what can be needed for testing out of the box, like spy, asserts.
- Support for snapshot testing, very usefull for React components
- Support for typescript out of the box
- Enzyme can be used to render components
- SCSS is more powerfull than other preprocessors
- It allows writing mixins of any complexity
- Backward compatible to css
- SCSS files are kept in same folders as components they are styling, except global css, that is in
style
folder. - Note: writing CSS in JS gives more control over component styling and makes JSX code cleaner(no ternary operators). So in developemnt I`d prefer using solution like Styles Components
- clone the repo
npm install typescript -g
npm install
npm start
- for starting a development servernpm run build-prod
- to build for production
- clone the repo
npm install
npm start
- In Browser go to
localhost:9000
- access 'Access' page, to add ypur API key. So interaction with API work properly. Invalid API keys will cause error message, be sure to put valid key.
- Go to Site this is a GitHub pages serving an application
- Provide yout access key
- Test features
After server is running
- Go to 'Send SMS' tab
- Fill in data and send messages 2a. Form is build on the top of Reactive Mobx Form library. Authored by me.
- Note: The response from REST endpoint is 200 OK, but as I see message has not been sent(credits are not touched)
After you server is running
- Go to 'Messages' tab
- go to
https://blooming-woodland-27725.herokuapp.com/
to make sure its up. This is a simple server, that acceplts aPOST
request(with payload) and sends a message via web sockets to client(with same POST payload). - Using a tool like
postman
send a request tohttps://blooming-woodland-27725.herokuapp.com/messages
include payload like in example - New message should instantly appear in messages grid
Note when sending a POST request to https://blooming-woodland-27725.herokuapp.com/messages
pass ContentType: application/json
.
Payload Example:
{
"id": "e8077d803532c0b5937c639b60216938",
"recipient": 31642500190,
"originator": 31612345678,
"body": "This is an incoming message",
"createdDatetime": "2016-05-03T14:26:57+00:00"
}