Модуль онлайн поиска Ж/Д билетов

Данный веб-сервис позволяет осуществить бронирование, получить информацию о местах на поезда по станциям отправления/назначения и дате отправления, получить информацию о пути следования поезда, выбрать места в определенном вагоне, так же имеется возможность отменить бронирование и справочная информация.

            Шаг 1. Поиск ж/д маршрутов в системе онлайнбронирования Nemo.

  1. Пользователю предлагается выбрать пункт отправления/назначения и дату отправления. При наборе текста в полях «Выезд» и «Прибытие» появляется всплывающая подсказка с возможными вариантами выбора станций, названия которых совпадает с текстом, введеным в соответсвующее поле ввода(совпадение проверяется от начала слова). В случае, если введенная комбинация не имеет ни одного совпадения с названиями станций, то в выпадающем списке предложенных результатов не будет, а сам список скроется. Также для упрощения взаимодействия пользователя с формой реализовано преобразование латинских символов, введных в поле «Выезд» и «Прибытие» в русскоязычное название станции(между латинскими символами и символами кириллицы ставится соответствие аналогичное клавиатурному — например, символ ”n” преобразуется в “т”). Поле «Дата» отвечает за желаемую дату отправления. При переходе на это поле появляется календарь, где пользователь может выбрать нужную ему дату. Возможные дни для выбора имеют белый цвет, номера дней, для которых поиск невозможен отбражаются черным цветом. (Это условия РЖД — поиск можно осуществлять для даты не раньше текущей и не позже даты, полученной путем отсчета 45 дней вперед от текущей). После ввода названий станция отправления, назначения и даты отправления для перехода на следующий шаг поиска(т.е. для получения результатов, удовлетворяющих введенным условиям) следует нажать на кнопке «Поиск».
  1. В случае, если обязательные поля(рядом с ними находится символ «*» желтого цвета) оказываются незаполненными, то появляется всплывающая подсказака над полем, указывающая, что данное поле обязательно должно быть заполнено. Так же в данной ситуации при нажатии на кнопке «Поиск» будет невозможно перейти к следующему шагу, пока в поля не будут введены корректные данные.
  1. В нижней части страницы поиска находится ссылка «Информация об оформлении проездного документа.», при нажатии на которой появляется окно со справочной информацией. В данном окне содержатся списки  стоек регистрации «Электронного билета» и транзакционных терминалов самообслуживания(ТТС).
  1. После нажатия на кнопку «Поиск» появляется страница с заголовком «Выполняется поиск ж/д маршрутов». На этом этапе происходит поиск по заданным параметрам, если резльтаты были найдены, то происходит переход на следующий шаг бронирования. В противном случае будет выведена информация об ошибке «В указанную дату поезд не ходит». Так же в случае возникновения других ошибок в процессе поиска, они будут выведены, а ввод данных придется повторить. Для этого рядом с ссобщением об ошибке(справа) отображается кнопка «Назад», пр нажатии на которую происходит переход на начальную страницу поиска(т.е. на Шаг1)

            Шаг 2. Результаты поиска ж/д билета.

  1. В верхней части формы результатов находятся поля для поиска, заполненные параметрами, введенными пользователем на предыдущем этапе и работает аналогично такой же форме на предыдущем шаге. Под кнопкой «Поиск» находится кнопка «Новый поиск», при нажатии на которой пользователь попадает на страницу Шага 1. Под формой для поиска распологается информация о параметрах поиска - «Параметры поиска», где выведены Станция отправления — Станция назначения и под ними дата отправления, введенные пользователем на предыдущем этапе.
  1. Под информацией о параметрах поиска находятся элементы управления сортировкой реультатов поиска. В выпадающем списке можно выбрать один из критериев сортировки - («Продолжительность», «По дате отправления» и «Цена»). В случае выбора критерия «Цена» происходит сортировка, по убыванию или возрастанию минимальной цены билета в поезде.(т.е. У поезда цены могут быть различные для Купе, Люкса и Плацкарта, вы бирается минимальная цена из предложенных и она потом берется за данные для сортировки). Ееще одним элементом поиска является кнопка с галочкой, которая отвечает за то, в каком порядке будут сортироваться результаты(по убыванию в случае, если кнопка нажата, по возрастанию в ином случае).
  1. Под элементами управления сортировкой результатов поиска, следуют ссылки, при  нажатии на которые пользователь переходит к странице с результатами поиска, аналогичной представленной, где в качестве параметров поиска беруться станции отправления/назначения введенные пользователем, а дата отправления та, которая отбражена на ссылке.
  1. Ниже, если требуется, происходит вывод ссылки на страницы результатов поиска(в случае если на одной странице не удается вывести все результаты).
  1. Список результатов предсталяет собой набор элементов, имеющих одинаковый внешний вид и хранящих информацию о каждом поезде, удовлетворяющем критериям поиска. Слева отбражается порядковый номер поезда в списке результатов. Правее идет первая подчасть информации о поезде, содержащая номер поезда и название поезда(если есть), ниже начальная станция маршрута-конечная станция маршрута,  ниже тип поезда. Следующий блок содержит название станции отправления, под ней время отправления. Следуйщий блок содержит название станции назначения, под ней время отправления(если день отправленя и день прибытия не сопадают, то под временем отображается дата прибытия). Следющий бол отображает время в пети(в часах и минутах). Далее отображаются списки цен, соответствующие катгории вагонов поезда, отображающихся правее. Под каждой категорией вагонов поезда отображается количество свободных мест на данный момент. При нажатиии на названи категории пользователь переходит на Шаг для выбора мест в вагоне. При нажатиии на номере(и если есть названии) поезда, то отбражается страница с маршрутом следования поезда.
  1. Страница с маршрутом следования поезда содержит следующие данные о маршруте: номер поезда, начальный пункт маршрута->конечный пункт маршрута. Ниже в таблице список пунктов из маршрута поезда, где выводятся название станции, время прибытия, стоянка в минутах и время отправления. К сожалению, нет возможности выводить дату для маршрута, т.к. В ответе на запрос из УФС не приходит никакой информации о дате отправления от начальной станции(или конечной/дата прбытия) и названия станций, которые выдаются в списке результатов несовпадают с названиями станций, полученных из УФС при запросе на предыдущем этапе в ходе бронирования.
  1. Для поездов следующих из Украины на данном этапе цены не указываются(указывается «?» и поясняющая подсказка), т.к. цена для них станет известна лишь при запросе на бронирование.

           Шаг 3. Выбор вагона и мест.

1. На данном этапе пользователь может выбрать количество мест в нужном ему вагоне.  Под заголовком «Выбор вагона и мест» находится форма со списком вагонов для данной категории в выбранном поезде. В правом углу формы находится ссылка, при нажатии на которой пользователь перейдет на страницу результатов поиска. Слева информация о поезде, о станциях  и датах выезад/прибытия. Ниже представлены ссылки для перехода на страницу выбора мест в вагонах других категорий выбранного поезда.

2 Ниже представлены два чекбокса для возможности исключения мест у туалета и выбра мест в одном купе.

3. Далее следует список вагонов. В первом блоке указывается номер вагона. Во втором блоке для вагона указывается его тип(например «Плацкарт») и ниже класс обслуживания. Следующий блок указывает цену места в данном вагоне(если есть цена со скидкой, то она указывается ниже с соответствующим пояснением). Далее идет набор выпадающих списков для выбора количества мест определенного типа. Для плацкарта существуют боковые и обычные места. В случае выбора в селекте мест определнного типа(напрмер небоковые), селекты для выбора мест другого типа блокируются(боковые в данном примере). Это сделано потому что для запроса УФС нет параметра разделяющег места на боковые и небоковые, есть возможность лишь указать количество верхних, нижних мест и выбранный диапазон. В случае если в цену билета включено питание это отбражается и отбражается количество питаний за поездку. Если вагон разделяется на мужские/женские/смешанные, то под кнопкой «Заказать» отбражается селектбокс с типом мест в вагоне, а количество мест для селектбоксов выбора мест меняются на количество, соответствующее данному типу мест. Так же, если в вагоне есть возможно приобрести постельное белье, появляется чекбокс, пр нажатии на который пользователь бронирует билеты вместе с бельем. Для некоторых вагонов пользователь может выбрать места на карте Данная возможность доступна для вагнов Плацкарта, Купе и Люкса со стандартным расположением мест. Пользователь может выбрать лишь мест, идущие подряд, при этом максимальное количество мест должно быть не больше 4, при этом нижних мест может быть выбрано больше верхних только на 1. Это требование РЖД. В случае, когда выбраны места в селекте и пользователь начинает выбирать места на карте, места на селекте сбрасываются, аналогична и обратная опреация — места на карте сбрасываются, если пользователь начинает выбирать места на селектах. При выборе мест на карте зменяются значения выбранных мест и в селектах и эти 2 информации взаимосвязаны. В случае нажатия на чекбоксе исключить мест у туалета карата и селект сбрасываются. В случае нажатия на чекбоксе «Выбрать места в одном купе» карта скрывается из-а того, что это технически неоправданно. При нажатии на кнопке «Заказать» пользователь переходит на следующий шаг. Если не было выбрано не одного места выводится сообщение, информрующее пользователя о том, что нужно выбрать, хотя бы 1 место в данном вагоне.

4. Так же, как и на предыдущем шаге для поездов, следующих из Украины цена на билеты неизвестна.

         Шаг 4.  Пассажиры.

1. Для корректной работы формы пассажиров в настройках «Адмнистрировани» ->«Форма ввода данных» выбрать в селекте «Сменить форму» на «Информация о пассажирах», затем в селекте «компонент» выбрать «Ж/Д билет». После этого установить отчество, как необязательное поле.

2. Ввод данных. Для каждого документа существует своя валидация для разных типов документов:

а) Паспорт.

1. Имя, Фамилия, Отчетство обязательны для ввода. Допустимы символы кирилицы. Длина от  1 до 25 символов.

2. Номер документа — 10 цифр.

б) Свидетельство о рождении:

1. Имя, Фамилия, Отчетство обязательны для ввода. Допустимы символы кирилицы. Длина от  1 до 25 символов.

2. Номер документа — римские цифры(I,V,X) , далее 2 символа кириллицы, 6 арабских цифр.

в) Загран. паспорт:

1. Имя, Фамилия обязательны для ввода. Допустимы символы латинского алфавита. Длина от 1 до 25 символов. Отчество необязательно, в случае наличия должен содержать только символы латиницы.

2. Номер документа — 9 цифр.

г) Паспорт иностранца:

1. Имя, Фамилия обязательны для ввода. Допустимы символы латинского алфавита. Длина от 1 до 25 символов. Отчество необязательно, в случае наличия должен содержать только символы латиницы.

2. Номер документа — от 6 до 22 символов. Символы могут быть цифрами, символами кирриллицы и латиницы.

д) Воинское удостоверение и паспорт моряка:

1. Имя, Фамилия, Отчетство обязательны для ввода. Допустимы символы кирилицы. Длина от  1 до 25 символов.

2. Номер документа — от 1 до 17 символов. Символы могут быть цифрами, символами кирриллицы и латиницы.

  1. Выбор типа пассажира(взрослый/ребенок). При смене значения изменяется набор допустимых документов для селекта, который отвечает за выбор типа документа. Всего количество пассажиров может быть не больше 4, бесплатные места сюда также включаются. Нельзя заказать бесплатных дестких мест больше чем взрослых мест.Обязательно должен быть, хотя бы один взрослый пассажир.

4. Чтобы продолжит бронирование, нужно нажать на кнопку «Забронировать». Если что-то не довлетворяет перечисленным выше условиям, будут выведены сообщения об ошибке.

5. В верхнем правом углу формы имеется ссылка «Вернуться к выбору мест», нажав на нее пользователь возвращается к выбору мест в вагоне.

Шаг 5.  Бронирование.

1. При успешном бронировании отбражается информация с подробными данными о билетах, ценах на них, местах, возможности электронной регистрации. Примечание: на бесплатные детские места сборы не применяются.

2. В верхнем правом углу имеются ссылки для перехода к предыдущим шагам бронирования.

3. Выводится, время до которого нужно оплатить заказ, чтобы в УФС его не аннулировали.(нужно подтвердить оплату в течении 15 минут).

4. Высылается письмо на почту введеную в поле «E-mail» на Шаге 4. На email приходит квитанция, однако в ней не указан номер заказа, т.к. Он появляется после подтверждения оплаты.

5. При нажатии на кнопке «Оплатить» переходит на страницу выбора платежной системы.

6. При нажатии на кнопку аннулировать переходит на страницу «Подтверждения отмены заказа».

            Шаг 6. Выбор платежной системы.

Из предложенного списка следует выбрать нужную плтежную систему, либо нажать на кнопук «Оплатить позднее» и вернуться к результатам бронирования.

            Шаг 7. Подтверждение оплаты.

Для подтверждения оплаты следует выбрать «Выписка документа».

            Шаг 8. Загрузить документ.

                        Отображается страница с квитанцией и заполненными данными о заказе. Здесь уже выводится номер заказа, который был получен при подтверждении заказа.

           Шаг 9. аннуляции заказа.

                        На этой странце нужно указать в чекбоксе свое согласие с аннуляцией закза и на жать на кнопку «Продолжить».

              Примечания по проекту:

            Названия станций выводятся такие, какие приходят из УФС в ответах на запросы, т.к. не имеется справочника, в котором бы содержалось соответствие между корректными названиями городов и полученными данными.

            Карты имеются не для всех вагонов. В будущем планируется расширить информацию о картах поездов.

            В связи с работой в тестовом режими имеются некоторые несоответствия — например, цены на шагах поиска могут несоответствовать ценам, полученным при заказе билета(подтверждено службой поддержки УФС).

p