- Ubuntu 18.5
- Postgresql 10+
- Redis (для sidekiq)
- Установите rbenv
- Установите nvm
- Зайдите в каталог проекта.
- Установите через нужную версию ruby через
rbenv install
- Установите через нужную версию node через
nvminstall
- Установите нужные модули
bundle install
- Проинициализируйте базу
rake db:setup
./bin/webpack-dev-server & rails s
Далее открываем в браузере:
- http://localhost:3000/ - Публичная страница
- http://localhost:3000/admin/ - Админка
cap production deploy
- Браузер HTTP (5 минута в хроме)
- Caddy (Front Web Server) (30 сек ?) -> Application Web Server (Ruby Rack Puma)
- Ruby Rack Puma (15 секунд) -> Rovos Broker Server (Rack Ruby Eventmachine) - !!!
- Rovos Broker Server (7 секунды) (TCP/IP / GSM) -> вендинговая машина (STM)
- Если она уже включена то показывать страницу отсчета.
- Если была включена и закончила работу, то показывать страницу что по этой оплату кресло уже закончило массаж.
- Если машину еще не включали, то включить:
- Включить
- Убедиться что машина включилась. Для этого нужно ловить exception.
- Логировать в Rails.logger что машину включили и результат (response)
- Показывать клиенту страницу что кресло включится через несколько секунд и показывтаь обратный отсчёт.
- Логировать исключение в Rails.logger
- Отправить уведомление в Bugsang с указанием price, machine, error
- Говорить клиенту что включение не удалось и возвращать деньги
- Сообщить админам (bugsnag)
- Записать в лог Rails.logger
- Сообщить пользователю причину.
- Дать возможность повторить оплату (например другой картой)