noisae / sms-message

Just exercising some concepts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SMS Message

Development Concepts

The code are based on best practices from some concepts like Clean Code, Refactor to Patterns, SOLID, Object Calisthenics, Test Driven Development, Behavior Drive Development, Domain Driven Development.

Docker are used to run the projects.

Running the project

When start the application we will see a no data list. To make the things happen, you can try to send a message to number 13615023168 using your cellphone. Now it's time to send a message, go foward on it!

Obs: To do the realtime we use Pusher service, a great socket solution :)

$ docker-compose up

Endpoints

  • List: localhost:8080/messages
  • Send Message: GET - localhost:8080/messages/send

Backend

The Backend application structure are based on Architeture Layer Idea explained by Robert Martin on "Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin". The application api use a GraphQL endpoint to Frontend, and a webhook to receive MessageBird messages.

Obs: Localtunnel is used to expose the server on port 3000. If something wrong happen, confirm if localtunnel is working on your system :P

Tests

$ docker-compose run --rm smsmessageapi yarn integration
$ docker-compose run --rm smsmessageapi yarn test

Frontend

The Frontend application core are builded on top of Webpack, React Components, Redux, Graphql (with Apollo) and LESS. The code use some new features of ECMA2015 with a great help of our friend Babel :)

Tests

$ docker-compose run --rm ssmsmessage-front yarn test

About

Just exercising some concepts


Languages

Language:JavaScript 84.8%Language:CSS 11.7%Language:HTML 2.8%Language:Gherkin 0.7%