The backend API is running on http://localhost:3000
. You can run
http://localhost:3000/currencies/
to test it.
I've used Express.js and Sequelize ORM as the ORM.
I have included pagination from the Coinmarketcap endpoints that the frontend is also taking advantage of. Having a client requesting an endpoint that can potentialy contains millions of results, could be dangerous.
I have cloned React/Async
example into the frontend
folder and changed it to my needs.
I've used Semantic UI for the styling and for ready UI React components.
In a real world scenario, I would have write enough tests for the backend as for the frontend too. I have restructured backend's folders and files in such way, that would be easier to test individual files as units.
Sequelize will allow me to connect it to SQLight, in order to run my integration tests for a faster integrations test suite.
To run my code:
Start docker-compose:
> docker-compose build
> docker-compose up -d
> docker-compose run backend /init-db.sh
After it, the web application will be available on
https://localhost:3001
.