A comprehensive dashboard to track all your crypto investments and savings.
Overtime performance and current state of affairs.
Link to a demo
The project is made to showcase React-Redux application /client
in combination with
headless Ruby on Rails application /server
as API.
All dockerized and orchestrated with docker compose for effortless infrastructure management.
API also integrates with coinmarketcap to get the latest updates about asset values.
To get up an running you need this to be installed on your machine:
Here is the steps you need to execute to get all setup:
$ git clone https://github.com/tim-kozak/redux-rails.git
$ cd redux-rails
$ docker-compose up -d
$ open http://0.0.0.0:8080/
One-liner:
$ git clone https://github.com/tim-kozak/redux-rails.git && cd redux-rails && docker-compose up -d && open http://0.0.0.0:8080/
Client:
- Webpack - building, loading, running
- React - view rendering
- Redux - store management
- redux-thunk - async actions
- react-router-dom - routing
- reselect - data processing
- other: css-modules, axios, moment, highcharts, react-sparklines, webpack-dev-server
Server:
- Ruby on Rails - web framework in headless mode
- Interactor - service objects pattern
- Sidekiq - backgroud jobs
- Sidekiq-scheduler - periodic jobs
- JWT and bcrypt - for authentication
- active_model_serializers - models serializer
- rack-cors - Cross-Origin Resource Sharing settings
- pg - PostgresSQL connector
- faker,seeds - demo data generation
23 files in total.
118 relevant lines, 112 lines covered and 6 lines missed.
Coverage ( 94.92% )
Controllers - 96.6%
Models - 100.0%
Helpers - 100.0%
Libraries - 69.23%
Ungrouped - 94.92%
API part is covered by model and integration tests written using:
- RSpec - Ruby on rails testing framework
- SimpleCov - Test coverage checker
- Shoulda - Advanced test syntax and format
- shoulda-matchers - Additional one line matchers syntax
- factory_bot - Model factories
- faker - Fake data generator (currencies, users, portfolio)
All endpoints are covered with tests that check:
- Authentication
- Error messages
- Response format
- Statuse codes
to launch tests use:
$ docker exec -it monitor-server /bin/sh
$ bundle exec rspec -fd
API uses version namespace /api/v1/
for flexibility and future updates