iac_test/Task.md
dm1sh c40a1b4f92
FInished work
(Too lazy to split by commits)
2023-09-21 20:41:56 +03:00

3.8 KiB
Raw Permalink Blame History

СПБ ГУП «ИАЦ»

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

О компании:

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

Более подробно о нас: https://iac.spb.ru/

Мы на Хабре: https://career.habr.com/companies/iac-spb

Текст задания:

- Парсинг

Считывание таблицы с сайта https://rosseti-lenenergo.ru/planned_work/

{width="6.818295056867892in" height="2.37117125984252in"}

Фильтр по времени - период текущей недели (текущий день и неделя вперед)

  • Успешное чтение необходимых полей на сайте и их сохранение в pandas.DataFrame

  • Переключение между страницами и совершение полной выгрузки {width="2.468441601049869in" height="0.49993766404199474in"}

  • Настройка автоматического запуска скрипта по расписанию

- Работа с данными

  • Парсинг столбца Улица (разбиение строки на отдельные адреса)

  • Геокод адресов через https://petersburg.ru/mainPortal/api_services/view/2223 и сохранение building_id найденных зданий

  • Запись результата в csv файл

- Анализ данных и Визуализация

  • Выполнить в свободной форме на основе данных, полученных ранее

В дополнение к скрипту можно сделать дашборд на Yandex DataLens /Grafana

*Создание базы данных

  • Вместо сохранения результата в csv, развернуть базу данных и сохранять результаты в неё (PostgreSQL, Clickhouse, MongoDB)

  • (Можно сделать скелет с подключением и записью в бд на локалхосте)

*API

  • Написать API к базе данных или csv-файлу на FastAPI

**Docker

  • Оборачивание всей сделанной работы в docker-compose

  • При первоначальной настройке и запуске компоуза парсер начнет работать и собирать данные в БД / csv. Доступ к данным осуществляется по API.

Результаты проделанной работы залить на Github и прислать на tg:Faneagain

//При проблемах с парсингом для выполнения остальных задач можно попросить готовый набор данных

Задания помеченные «*, **» будут оцениваться как дополнительные.

Удачи!