g-ilham / wow_calendar

Тестовый проект (Ruby 2.2.3 / Rails 4.2.5 / PostgreSQL)

Home Page:http://wow-calendar.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WOW CALENDAR (Мой тестовый проект)

Build Status security Code Climate Test Coverage

DEMO URL

Для удобства тестирования используйте логин через VK или Facebook

Logo

Особенности реализации

1. Версии
  • Ruby 2.2.3 / Rails 4.2.5 / PostgreSQL
2. Повторяющиеся события

Функционал recurring событий полностью реализован на базе Sidekiq API.

  • После создания cобытия в планировщик добавляется Job-а согласно заданным настройкам повтора события (каждый день / неделя / месяц). В Job-e создается клон (Child) исходного события с заданной датой (delay_until). Job-a добавляется только одна для следующего (Next) события (а не для всех сразу).

  • В процессе выполнения Job-ы после создания нового "Child" события, в Sidekiq добавляется Job-a на следующий повтор события и.т.д

  • При удалении события или же при отмене "Повтора" cозданная Job-a удаляется.

Работа с событиями реализована в интеракторах и сервисах:

3. Календарь
  • В качестве Frontend плагина для календаря Я выбрал Full Calendar
  • Реализовано добавление / редактирование / удаление через попап
  • Так же реализован перенос события через Drag & Drop
4. Используемые Heroku Addons
  • RedisToGo для Sidekiq
  • Sendgrid для отправки писем
5. Использование DEV Tools сервисов

Данные виджеты отображены в начале 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/

Deploy

heroku login
heroku create
git push heroku master

About

Тестовый проект (Ruby 2.2.3 / Rails 4.2.5 / PostgreSQL)

http://wow-calendar.herokuapp.com/


Languages

Language:CSS 47.1%Language:Ruby 22.9%Language:HTML 20.5%Language:CoffeeScript 9.1%Language:JavaScript 0.5%