Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание для разработчика

Задача: Пусть в г. Санкт-Петербург имеется 5 пунктов выдачи с заданными географическими координатами.

имя		широта		долгота

1 Альдераан 59.9573 30.3485 2 Беспин 60.0025 30.3113 3 Дагоба 59.9485 30.3857 4 Корусант 59.9894 30.2587 5 Мустафар 59.8836 30.3575

Требуется создать веб-сервис, который предлагает пользователю ввести его ФИО, телефон и адрес, и по введенному адресу определяет ближайший пункт выдачи и расстояние до него. Пользователю выводится его имя, форматированный телефон и информация о пункте выдачи.

Файлы в архиве: Toolkit.php - вспомогательный класс, содержащий метод для форматирования номера телефона, а также метод для опеределения географических координат введенного адреса. CandidateAbstract.php - абстрактный класс. ajax.php - файл для AJAX-запроса.

Требуется создать файл Candidate.php и объявить в нем класс Candidate, который будет наследовать CandidateAbstract. Также требуется создать файл, в котором будет находится форма ввода ФИО, телефона, адреса, а также кнопка, при нажатии на которую запускается процесс определения ближайшего пункта выдачи. После успешного выполнения определения ближайшего пункта в div на странице должен выводится результат в виде "[ФИО] ([форматированный телефон]): ближайший пункт выдачи [название пункта] находится на расстоянии [расстояние до пункта]км"

Предполагаемая последовательность процессов:

  1. Пользователь заходит на страницу и видит поля для ввода ФИО, телефона, адреса, а также кнопку "Найти пункт выдачи"
  2. Пользователь вводит данные и нажимает на кнопку. Необходимо произвести валидацию введенных данных. Если поля ФИО, телефон и адрес заполнены корректно, средствами javascript отправляется AJAX-запрос, обрабатываемый файлом ajax.php
  3. ajax.php создает экземпляр класса Candidate и передает управление методу run
  4. Методы класса Candidate обрабатывают полученные данные и определяют название ближайшего пункта выдачи и расстояние до него
  5. Полученные результаты добавляются в ответ AJAX-запроса и средствами javascript выводятся в div на странице

Требования:

  1. Информация о пунктах выдачи хранится исключительно в базе данных
  2. Изменять содержимое исходных файлов запрещено
  3. Отправка и обработка AJAX-запроса, а также вывод результатов в div должны производится средствами "чистого" javascript (библиотеку jQuery не использовать)
  4. Расстояние выводится в километрах с округлением до 1 знака после запятой

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages