Для удобства тестирования используйте логин через VK или Facebook
- Ruby 2.2.3 / Rails 4.2.5 / PostgreSQL
Функционал recurring событий полностью реализован на базе Sidekiq API.
-
После создания cобытия в планировщик добавляется Job-а согласно заданным настройкам повтора события (каждый день / неделя / месяц). В Job-e создается клон (Child) исходного события с заданной датой (delay_until). Job-a добавляется только одна для следующего (Next) события (а не для всех сразу).
-
В процессе выполнения Job-ы после создания нового "Child" события, в Sidekiq добавляется Job-a на следующий повтор события и.т.д
-
При удалении события или же при отмене "Повтора" cозданная Job-a удаляется.
Работа с событиями реализована в интеракторах и сервисах:
- В качестве Frontend плагина для календаря Я выбрал Full Calendar
- Реализовано добавление / редактирование / удаление через попап
- Так же реализован перенос события через Drag & Drop
- RedisToGo для Sidekiq
- Sendgrid для отправки писем
- Travis CI статус build-a
- Hakiri.io сканирование уязвимостей
- CodeClimate проверка качества кода
- Сoveralls.io cтепень покрытия тестами
Данные виджеты отображены в начале README ^
- Авторизация через Вконтакте и Facebook (c подгрузкой аватарки)
- Google Captcha на регистрации через Email
- В качестве Landing секций использована UI тема TRANSIT LADNING
- Для Dashboard использована UI тема DASHGUM
- Код покрыт Rspec тестами на 92% Посмотреть покрытие
git clone git@github.com:g-ilham/wow_calendar.git
cd wow_calendar
cp config/database.yml.example config/database.yml
cp .env.example .env
bundle
rake db:create
rake db:migrate
foreman start
В файлике .env.example находятся тестовые ключи для Google Captcha и Oauth Вконтакте и Facebook. Обычно я НЕ ВЫКЛАДЫВАЮ credentials в github (даже если репо приватный). Просто без них будет трудно запустить приложение на localhost. Поэтому их и добавил.
cp .coveralls.yml.example .coveralls.yml
RAILS_ENV=test bundle exec rake db:setup
RAILS_ENV=test COVERAGE=true COVERALLS_RUN_LOCALLY=true bundle exec rspec spec/
heroku login
heroku create
git push heroku master