Необходимо разработать бекенд (серверную часть) веб-приложения, демонстрирующего
расписание рейсовых автобусов.
Автобусы двигаются по маршрутам от конечной до конечной в прямом и обратном направлении. В
разных направлениях может быть разный набор остановочных пунктов.
Фронтенд приложения получает данные с сервера через REST API, необходимо реализовать
следующие методы этого API:
- /api/find-bus
Описание:
Возвращает автобусы, маршрут которых включает отрезок от одной остановки к другой, с тремя
ближайшими к текущему времени вариантами времени прибытия на исходную остановку.
Параметры запроса:
-
from: id исходной остановки.
-
to: id конечной остановки.
Пример ответа:
{
"from": "ул. Пушкина",
"to": "ул. Ленина",
"buses": [
{
"route": "Автобус No11 в сторону ост. Попова", // указывается конечная остановка маршрута
"next_arrivals": ["08:15", "08:40", "09:15"]
},
{
"route": "Автобус No21 в сторону ост.Ленина",
"next_arrivals": ["08:30", "09:04", "09:30"]
}
]
}
- Методы (или метод) предоставляющие механизм редактирования маршрутов, т.е. набора
остановок на пути следования автобуса (без указания времени). Входный параметры и
формат ответа продумать самостоятельно.
Требования к реализации:
-
Язык программирования: PHP (версия 7+).
-
Использование фреймворка: допускается использование фреймворка на выбор: Laravel,
Symfony, Yii2 или чистый PHP. -
База данных: PostgreSQL.
-
Использование подхода ООП
Оцениваться будут архитектура решения, качество кода, соответствие REST принципам и
тестируемость.
Будет плюсом если проект будет запускаться в docker.
Результат представить в виде ссылки на публичный репозиторий на bitbucket.org. Он должен
включать в себя php файлы проекта, sql дамп базы, схему структуры базы данных в виде
изображения и инструкцию по запуску проекта.