Приложение для отслеживания курса usd в реалтайме.
- Rails 5.2
- Redis
- Postgresql
- Sidekiq
- Sidekiq-cron
- ...
- RSpec
- Webmock
- FactoryBot
- Rubocop
- ...
- React
- @rails/webpacker
- actioncable
- styled-components
- ...
Установить компоненты, которые еще не присутствуют в системе, зависимости для бэкенда и фронтенда
$ bundle
$ yarn
Создать и запустить миграции
$ rails db:create
$ rails db:migrate
Запустить компоненты (rails server, sidekiq, webpack) можно отдельно с нескольких вкладок, можно использовать foreman.
Т.к. foreman запускается по умолчанию на порту 5000, для запуска приложения на порту 3000, нужно установить соответствующее значение переменной окружения PORT либо с текущей запускаемой вкладки, либо установив в конфигурационном файле (~/.bashrc
, ~/.zshrc
и т.д.).
$ export PORT=3000
Код фронтенд части расположен в app/javascript. Сервис по извлечению курса доллара к рублю с использованием апи currencylayer запускается автоматически после запуска sidekiq, с использованием sidekiq-cron, график прописывается в файле config/schedule.yml, и отрабатывает каждые 5 мин. Ключ для доступа к апи хранится в зашифорванном виде с использованием ecnrypted credentials и для того, чтобы сервис работал, нужно иметь соответствуюший ключ шифрования, распологающийся в config/master.key, который не включается в репозиторий. Можно установить свои значения, зарегистрировавшись и получив апи ключ, удалив присутствующий файл config/credentials.yml.enc и запустив команду, указав предпочтительный консольный редактор:
$ EDITOR=vim rails credentials:edit
После чего откроется содержимое файла с ключами в расшифрованном режиме, где нужно добавить конфиг:
currency_layer:
api_key: YOUR_API_KEY
После сохранения и выхода, содержимое файла автоматически сохранится в зашиформанном режиме.
Запуск всех требуемых компонентов:
foreman start
После старта компонентов, работающее приложение можно открыть по адресу localhost:3000.