Портфолио самостоятельных проектов
Система учета для автопроката на базе Google app script + Google sheets
- Снизить трудоемкость обработки заявок, формирования арендных документов, учета и закрытия штрафов
- Уменьшить количество ошибок в арендных документах
- Привести учет к единому формату, чтобы быстро собирать аналитику по продажам, пробегам, клиентам, автомобилям.
Заявки с самописного сайта попадают на email, менеджер проверяет возможность аренды через СБ и направлял КП клиенту. После подтвержденеия условий аренды клиентом, менеджер вручную составлял 3 документа - договор, условия аренды (приложение к договору) и акт приема передачи автомобиля.
Еженедельно ответственный менеджер вручную проверяет штрафы на сайте ГИБДД по всем автомобилям парка и если обнаружены новые неоплаченные штрафы, то заносит их в таблицу. По каждому штрафу ответственный менеджер связывается с клиентом и добивается оплаты штрафа. Если клиент уклоняется от оплаты, менеджер собирает пакет документов и передает в ГИБДД для переоформления штрафа на арендатора.
Менеджеры часто забывают взять оплату за перепробег и нехватку топлива при возврате авто.
После оценки трудозатратности, выяснил, что больше всего времени у менеджеров занимает поиск информации по договорам, подготовка пакета документов и контроль штрафов.
В качестве решения выбрал Гугл таблицы, это было удобно как менеджерам, так и руководителю бизнеса. Создал две таблицы Google sheets:
- Список авто - список автомобилей в парке со всеми необходимыми атрибутами: госномер, год выпуска, VIN, номер телеметрии, номер страховки, срок истечения страховки, номер СТС, идентификатор авто в системе поска штрафов, и т.д.
- Техобслуживание - список автомобилей с атрибутами: последний зафиксированный пробег, дата последней фиксации пробега, прогнозное значение текущего пробега, прогнозная дата проведения ТО, прогнозный остаток пробега до ТО.
- Штрафы - автоматически формируемый список штрафов полученных на автомобили парка. Для реализации был написан скрипт интеграции Таблицы с сервисом парсинга штрафов ygibdd.ru чере встроенный в таблицы серви google app script. Наличие штрафов проверяется каждые 30минут, а по всем полученным штрафам автоматически вычисляется нарушитель и номер договора, в рамках которого нарушение произошло. Там же написал телеграм-бот, который рассказывает менеджерам кто из клиентов и на какие суммы получил штрафы и присылает ссылки на постановление и платежную квитанцию.
- Некоторые другие листы с данными для ручной обработки.
Реестр догворов, содержит листы :
- Ответы на форму (реестр договоров) - реестр в котором каждая строка содержит полный набор данных для формирования печатной формы договора, учета, автоматизации процессов и сбора статистики. Данные по договорам вносятся менеджером через Гугл Форму, это позволяет минимизировать ошибки при вводе.
- Пробеги - на листе отображается список договоров, менеджеры указыввают пробег на старте аренды и при возврате авто.
- Печатные формы - пять листов с печатными формами документов необходимых для заключения договора с любым клиентом. К таблице привязан скрипт, который берет данные договора из листа "Ответы на форму" по номеру договора, дополняет их данными из "Базы машин" и заполняет печатные формы. Сформировать любой договор можно по его номеру в "два клика".
Рассчитывают стоимость аренды, допуслуг и перепробега, склоняют ФИО, мигрируют данные в договор из других строк реестра договоров и базы машин, проверяют срок действия прав, формируют несколько разных вариантов пакетов документов (шаблоны для ЮЛ и ФЛ имеют различия), формируют пакет документов в ГИБДД для перенос штрафа, получают штрафы из API Ygibdd.ru, определяют у кого в аренде был автомобиль в момент нарушения, уведомляют в телеграм менеджера о новых штрафах, проверяют корректность документов на авто в базе ГИБДД, позволяют управлять списком машин на ygibdd прямо из таблицы, агрегируют суммы штрафов по автомобилям и людям для статистики, и выполняют еще несколько менее эффектых, но достаточно нудных процессов. Всего для системы в google app script написано больше 2500 строк кода на js.
От локального хранения файлов договоров на офисном компьютере к новой схеме печати из реестра по требованию переходили постепенно, в течении нескольких недель, продолжая дублировать учет по старой схеме. Через месяц после внедрения измерили эффективность:
Скорость формирования пакета документов (внесение в гугл форме данных арендатора, сроков аренды, др. данных и печать) составила менее 5 минут против 40 минут ранее.
Теперь любой договор формируется за секунду, есть реестр договоров а не ворох файлов, а надежность обеспечивают История версий и ежедневное бекапирование таблиц. Менеджер может провести проверку арендатора и внести данные в форму с мобильного, находясь вне офиса, после возвращения ему останется напечатать на бумаге и выдать автомобиль. Форма позволяет избежать ввода всех полей, если менеджер указывает арендатора и водителя/ей из реестра договоров, тогда часть данных подтягиваются автоматически.
До внедрения изменений полная ручная проверка парка на штрафы на сайте ГИБДД и перенос данных в таблицу занимали около 4 часов. После внедрения изменений проверка всего парка и связывание найденных штрафов с договорами стало занимать около 3 минут. Процесс автоматизирован до этапа предоставления информаци кто из водителей получил штраф, менеджер подключается только для сбора задолженностей. Штрафы приходят даже когда сайт ГИБДД недоступен. В компании появился быстрый доступ к штрафам - менеджер на выезде может проверить штрафы арендатора в телеграм и сформировать платежку для клиента в момент возврата автомобиля.
Учет и пргнозирование пробегов также стали неожиданно эффектичным процессом, стало очень четко видно сколько дней и километров осталось каждому авто до техобслуживания. Это исключило пробег без ТО и потерю гарантии - ни один авто до сих пор не нарушил регламентнтые сроки обслуживания. В течении 2 месяцев мне удалось подобрать оптимальные параметры прогнозирования достаточно точно описывающие пробег автомобилей во времени.
Система работает с 2019 года и компанию полностью устраивает, проведено более 7000 договоров, но недавно в силу серьезных изменений в законодательстве принято решение о переходе в другую, соответствующую новой редакции 152ФЗ (трансграничная передача).
Парсер данных мониторинга высшего образоавания
Для понимания структуры рынка продактам очень полезно видеть список игроков и их ключевые параметры. Часто эту информацию добыть крайне непросто.
Я столкнулся с такой проблемой при проработке российских ВУЗов, я видел и понимал основной костяк, но не было понятно что там в середине и среди малых региональных. Крайне важно для меня было количество студентов по программам высшего, дополнительного и дополнительного профессионального образования, а также бюджет ВУЗа (общий или подушевой) и структуру подчиненности. Задачка не простая, но в ходе изучения я столкнулся с сайтом https://monitoring.miccedu.ru/?m=vpo. Сайт размещает данные ежегодных мониторингов высшего и средне-профессионального образования в РФ, данные о реализуемых программах, количестве студентов по программам, количество зарубежных студентов, данные о финансировании, структурной подчиненности. Есть два недостатка в этом источнике: данные публикуются с задержкой в год-полтора и в данных не хватает ИНН-КПП для однозначного метчинга с данными из других систем.
Ну, чтоже, а дадата нам на что дана - пишу парсер, который собирает список вузов со страниц всех регионов, потом вторым обходом собирает нужные данные по каждому ВУЗу, попутно обогащая ИНН и КПП из Dadata.ru.
Код тут, немного неоптимален, но задачу здесь и сейчас отлично решат. Скорость выгрузки ограничивается задержкой, которую я добавил, чтобы сайт мониторинга не падал после 5-6 запроса.
Полученный файл csv я загрузил в корпоративный Yandex DataLens и сцепил с данными из других выгрузок (CRM, Приоритет 2030, и др) и на основе этих данных смог проверить некоторые интересные гипотезы, о которых рассказать не могу.
Есть замечания - около 3% ИНН-КПП оказались некорректными или не были получены, т.к. на вход dadata я подавал наименования организаций полуторалетней давности, а часть вузов сменили названия, закрылись или были соеденены с другими. Пришлось попраавить их вручную. Но зато теперь у нас есть сцепка идентификаторов из мониторинга, наших систем и dadata.
Благодаря выгрузке удалось выделить группу ВУЗов активно работающих с зарубежными студентами, провести ABCX-анализ, категоризировать вузы в CRM по признакам принадлежности к минестерству, бюджету и численности по программам высшего образования и ДПО, а также построить структуру подчиненности вузов и выявить практически полностью филиальные сети.
Анализ этих данных послужил мощным толчком для меня и отдела продаж в понимании рынка.
ЗЫ: структура данных за 23 год немного отличается на сайте и скорее всего парсер придется поправить когда потребуется их выгрузить.
Бот для закадрового перевода видео
В последнее время я часто интересуюсь темой ML, но в рускоязычно мнернете мало материалов, либо они низкого качества. Очень хочу смотреть зарубежные видео с русской озвучкой. Яндекс браузер вроде бы решил эту проблему фичей закадрового перевода видео, а для любителей Mozilla и Chrome есть плагины на tampermonkey. Но беда в том что часто на обучение я выделяю время по остаточному признаку - когда появилась минутка, в поезде, в аэропорту, в кафе. В общем когда под рукой только мобильник, и тут решений как будто нет.
Звучит как план - изучать нейросети и программирование делая програмируя себе инструменты обучения с использованием нейросетей.
Задача: переводить быстро видео с youtube и rutube если под рукой есть любое устройство с выходом в интернет.
- Получчаем ссылку на видео
- Скачиваем видео
- Имитируем с помощью vot-cli сессию Яндекс Браузера, чтобы получить аудиодорожку с переводом
- Склеиваем видео и полученный перевод с помощью ffmpeg c перекрытием аудио 15%
- Возвращаем собранное переведенное видео
Простое решение - сделать телеграм-бот, который принимает ссылки и возвращает файлы (чтобы офлайн в самолете или поезде смотреть).
Репозиторий проекта и мой персональный переводчик
https://github.com/supernarkis/Multilang.git
Бот умеет в асинхрон, вынес воркеры, в будущем планирую сделать и вебапп. Планирую добавить перевод имени файла, обновление метаданных, перевод целых плейлистов по ссылке, опциональную выгрузку полученных файлов в какой-то сервис (например rutube) и конечно добавить альтернативный переводчик, например Сбертеховский.
- Линейная алгебра от 3brown1blue
- Мини-курс про диаграммы потоков данных (data flow diagram)
- Использование LangChain и LLM для создания ботов