Исходные данные: Датасет. Содержит информацию о сотрудниках большого предприятия.
Задача:
- Составить и реализовать объектную модель для птимального хранения этих данных в реляционной бд.
- Добавить консольную команду для загрузки датасета в базу данных.
- Реализовать API для поиска сотрудника по имени. Метод должен возвращать полную информацию о сотруднике, включая всю информацию которая содержится в датасете.
Доп. инфо: Инструменты и средства разработки соискатель выбирает самостоятельно.
- Почти весь src/Utils это собственные наработки.
- Импорт в src/Modules/Employee/Import.php
- Модели в src/Models
- Креды для базы захардкодены в src/Utils/DbAccess.php
- В тестовом задании не используются фреймворки, инструменты или другие внешние зависимости, только собственные наработки.
- по тз не понятно, какое именно апи нужно, поэтому было сделано http api и возможность использования shell скриптами.
- Сделано разделение логики т.е. логика обработки импорта в модуле, логика сохранения в модели.
- на скрине 1 показано приветствие CLI интерфейса.
- На скрине 2 процесс импорта файла в БД
З.Ы. там используется bulk insert за счет этого импорт 30к записей отрабатывает примерно 2-3 секунды
- Скрин 3 поиск по бд использую cli интерфейс
- Скрины 4 и 5 запуск сервера и использование api через http
З.Ы. Тут важное уточнение - http тулзы, вроде роутера/валидатора/санитайзера не делались т.к. сторонние инструменты не используются т.е. для экономии времени, а в свободном доступе их полно.
- На скринах 6,7,8 показано как все это выглядит в бд.
Скрин 6
Скрин 7
Скрин 8