Портфолио и кейсы фрилансеров по fullstack-разработке

ФМ
Филипп Михеев Только что
Конвейер мониторинга нормативных изменений
Задача. Изменения в регулировании отслеживались чтением официальных сайтов вручную, важное находилось с опозданием. Решение. Бэкенд, который собирает публикации с официальных источников, извлекает из них суть языковой моделью, раскладывает в векторное хранилище для поиска по смыслу и отдаёт через интерфейс подключения, плюс рассылает сводки. Многоязычные векторные представления на 1024 измерения, кэш запросов к модели для снижения расходов. Результат. 43 из 43 тестов. Поиск по смыслу работает на русском и английском одновременно. Стек. Python 3.12, FastAPI, PostgreSQL + pgvector, Playwright, APScheduler. Название заказчика не раскрываю. Обложка - оформление карточки, а не снимок интерфейса.
ФМ
Филипп Михеев 3 минуты назад
Автоматизация работы во внешних системах без API
Задача. Нарушения нужно было находить вручную на сторонних сайтах, по каждому заполнять внешнюю форму и вести переписку по почте. Работа на недели. Решение. Конвейер, который сам находит случаи, заполняет внешние веб-формы, рассылает уведомления по почте и собирает отчёт для передачи. Отдельная сложность - внешние интерфейсы нестабильны и меняются без предупреждения, поэтому заложены повторные попытки, проверка результата после каждого шага и подробный журнал. Результат. 40 из 40 случаев обработаны, 64 из 64 обращения поданы, 23 результата подтверждены. Работа без участия человека. Стек. Python, Playwright async, SMTP/IMAP, WHOIS, openpyxl. Название заказчика не раскрываю. Обложка - оформление карточки, а не снимок интерфейса.
ФМ
Филипп Михеев 5 минут назад
Расширение браузера: запись встреч и краткие итоги
Задача. Итоги встреч никто не писал, договорённости терялись, задачи не попадали в трекер. Решение. Расширение Chrome, которое пишет звук вкладки и микрофона, расшифровывает речь, готовит краткие итоги и список договорённостей, отправляет задачи в трекер. Расшифровка идёт локально в браузере, при недоступности - через облако. Поддержано пять поставщиков моделей. Дополнительно расшифровывает голосовые и видеосообщения прямо в веб-мессенджере. Есть поиск, метки, массовая выгрузка, резервное копирование. Результат. 90 из 90 тестов, ноль ошибок типизации, чистая сборка. Закрыты сложные ошибки состояния: незаписанные данные при закрытии, восстановление зависших сессий, каскадное удаление, гонка при отрисовке. Стек. TypeScript, Vite, Chrome MV3, IndexedDB, WASM STT, vitest. Название заказчика не раскрываю. Обложка - оформление карточки, а не снимок интерфейса.
ФМ
Филипп Михеев 16 минут назад
Интернет-магазин и система заказов с двумя ботами
Задача. Заказы принимались в переписке, нумерация путалась, бонусы считались вручную, доставка планировалась на глаз. Решение. Каталог, корзина, статусы заказов, база клиентов, финансы, аналитика, карта доставки и рассылки. Два бота - Telegram и MAX - с одинаковым набором возможностей: профиль, товары, фотографии, кнопки, заказы. Атомарная нумерация заказов через блокировку на уровне базы, журнал начисления бонусов, защита от второго активного заказа у одного клиента. Результат. Система в боевой работе. После запуска закрыты типовые проблемы промышленной эксплуатации: заголовок авторизации, отступ при переподключении, восстановление через промежуточный сервер, проверки доступности после выкладки. Стек. Python 3.12, FastAPI, PostgreSQL, Redis, aiogram, MAX Bot API, React 18, TypeScript, Docker Compose. Название заказчика не раскрываю. Обложка - оформление карточки, а не снимок интерфейса.
ФМ
Филипп Михеев 18 минут назад
Прогрессивное веб-приложение с ИИ-чатом и голосовым вводом
Задача. Операционное управление велось в переписке и таблицах: расходы, бюджет, задачи, закупки, персонал. Ничего не сходилось, история терялась. Решение. Приложение ставится на телефон как обычное и работает без связи. Расходы, бюджет, задачи, закупки, персонал, сезонные подсказки и чат с ИИ, который видит все данные и отвечает на вопросы вроде «сколько ушло на закупки в июле». Голосовой ввод сделан через распознавание на Whisper вместо ненадёжного браузерного - работает одинаково на всех телефонах. Чеки распознаются с фотографии. Ход работы инструментов показывается в чате потоком. Результат. Сквозные проверки: 23 из 23 страниц на компьютере и 23 из 23 на телефоне, ноль ошибок в консоли. Приложение в ежедневной работе. Стек. FastAPI, React, Ant Design, PostgreSQL, Docker Compose, PWA, Service Worker, Whisper. Название заказчика не раскрываю. Обложка - оформление карточки, а не снимок интерфейса.
ФМ
Филипп Михеев 20 минут назад
Движок аудита отчётности на ИИ: выгрузки 1С и Excel — в рабочие документы
Задача. Аудиторы вручную перелопачивали выгрузки из 1С и Excel, чтобы найти нетипичные операции. Проверка одного периода занимала несколько дней. Решение. Платформа загружает журналы 1С 8.3 и таблицы Excel, прогоняет их через агента с заложенной аудиторской методикой и готовит рабочие документы с найденными рисками. Агент работает в две фазы: разведка на лёгкой модели находит подозрительные области, затем сильная модель параллельно разбирает каждую из них. Встроено 15 аналитических процедур: выборка, сравнение периодов, расчёт существенности, факторный анализ. Данные можно обезличивать перед отправкой в модель - четыре уровня, включая полный отказ от внешних вызовов. Результат. 522 теста пройдено, покрытие 94,99%, проверки ruff и mypy без замечаний, 61 файл исходного кода. Двухфазная схема снизила расходы на модель более чем вдвое относительно разбора всего объёма сильной моделью. Стек. Python 3.12, FastAPI, PostgreSQL, Claude API, Typer, openpyxl, pytest, mypy, ruff. Название заказчика не раскрываю. Обложка - оформление карточки, а не снимок интерфейса.
Алексей Жадан
Алексей Жадан 19 часов 33 минуты назад
Автопрогрев кеша: холодный старт с секунд до долей секунды
Сделал автопрогрев данных, которых нет в кеше: фоновый цикл греет нужные срезы заранее. После полного сброса главные страницы снова тёплые за доли секунды вместо длинной холодной сборки.
Алексей Жадан
Алексей Жадан 19 часов 34 минуты назад
Автозаявка в туннель при гео-блоке сайта
Собрал триаж гео-блокировок: со страницы и скриптов снимаются домены, каждый пробуется из двух регионов, подходящие шаблоны складываются в готовую заявку на туннель. На живом сайте при отказе из одного региона и ответе из другого заявка ушла сама.
Алексей Жадан
Алексей Жадан 19 часов 34 минуты назад
Страница визуальных дубликатов и метки происхождения
Сделал страницу визуальных дубликатов: похожие кадры группируются, получают метку происхождения и их можно снять с пометки. Бэкенд и витрина в бою; на контрольном наборе сотни кадров уложились в группы без потерь по ключу.
Алексей Жадан
Алексей Жадан 19 часов 35 минут назад
Мониторинг, который поднимает молчащие хосты
Построил мониторинг на Grafana и VictoriaMetrics. Отдельный сторож следит за молчащими хостами и поднимает упавшую машину через соседей и гипервизор без участия человека.