#Суть задания Необходимо реализовать отдельным приложением парсер данных о чартерных рейсах с сайтов туроператоров, на ваш выбор:
- Лабиринт - http://online.labirint.travel/freight_monitor (Греция; город прибытия - KOS)
- NEC Travel - http://online.nectravel.ru/freight_monitor (Турция; город прибытия - ISTANBUL)
Парсеры данных именно этих операторов давно и успешно реализованы нами и такая задача считается тривиальной.
####Объяснение что и откуда можно брать в итоговой таблице туроператора:
####Интерфейс готового приложения должен выглядеть примерно так: Нажатие кнопки "Парсить":
- Осуществляет запрос к туроператору
- Парсит информацию из полученной таблицы только в пределах заданных в календариках дат
- В зависимости от выбранной радиокнопки (xml/json/html) выводит результаты парсинга в выбранном формате
#Требования к заданию
- В качестве БД для задания использовать либо sqlite либо mysql. NoSQL не нужно.
- Считаем, что в системе обязательно будут присутствовать сущности: Рейс и Аэропорт
- Готовое приложение должно иметь покрытие тестами, хотя бы с помощью RSpec.
- Для запросов использовать gem 'rest-client'
- Для тестов правильности парсинга и запросов на сайт оператора использовать gem 'webmock'
- Шаблонизатор для вьюх - HAML
- В зависимости от выбранного значения радио-кнопок выдавать ответ в HTML, XML и JSON вариантах. Для отработки всего этого добра использовать gem 'rabl'
#Подсказки
Flight.rb:
belongs_to :departure_airport, :class_name => "Airport"
belongs_to :arrival_airport, :class_name => "Airport"
Не нужно тестировать фронтэнд. Важно протестировать класс парсера, правильное формирование запросов к внешнему сервису и замокать ответы от туроператора.
Если есть какие то непонятные моменты, не стесняйтесь задавать вопросы по адресу: [email protected]