Привет, Хабр!
В этой статье я хочу рассказать о своем пет-проекте, который вырос в итоге в CRM-систему для прокатного бизнеса - Впрокате ПРО. Это история не просто "очередного стартапа". Для меня, как для человека, нацеленного на карьеру в QA Automation, этот проект стал (а в чем-то еще станет в ближайшем будущем) идеальным объектом для исследования: от применения Generative AI в разработке до построения сложной системы, которую теперь предстоит покрывать автотестами на Python.
Зачем рынку еще одна CRM?
Прокатный бизнес (лыжи, инструменты, декор, одежда) часто живет в Excel или на бумаге. Текущие решения либо слишком тяжелые, либо не учитывают специфику: например, гибридную оплату (нал + карта в одном чеке) или изменение стоимости при изменении тарифа "на лету". Кроме того, была возможность тестировать программу "на бою", так почему бы этим не воспользоваться? :)
Я решил сделать решение на стеке React + Node.js + PostgreSQL, которое будет быстрым, облачным и дружелюбным к мобильным устройствам. Кроме того, учитывая, что сейчас частенько наблюдаются проблемы с качеством интернета, мое решение должно было предусмотреть и внезапную потерю связи и при этом обеспечить возможностью продолжать работать прокатную точку.
AI как Co-pilot: ускорение без потери контроля.
Один из частых вопросов: "Зачем писать самому, если есть AI?". Отчасти я с этим согласен, в эпоху стремительного развития искусственного интеллекта довольно глупо отказываться от его помощи. Я использовал ИИ как высококвалифицированного ассистента.
Как это работало на практике:
Проектирование логики: Сложные узлы, такие как расчет стоимости доплаты за просрочку, расчет праздничных коэффициентов, редактирование активного заказа с пересчетом стоимости "на лету", я описывал концептуально, а ИИ помогал генерировать базовый код функций.
Интеграция: Работа с API ЮKassa или мессенджером требует много рутинного описания интерфейсов. Делегирование этих процессов ИИ сэкономило до 40 % времени (может и больше по факту).
Контроль: Важно понимать, что я не просто "копипастил". Моя роль заключалась в архитектурном надзоре и тщательном код-ревью, а также проверкой внедренного функционала "на бою". ИИ отлично справляется с генерацией алгоритма, но только человек может вписать его в контекст существующей бизнес-логики.
Такой подход позволил мне, как single разработчику, реализовать Enterprise - функционал за короткий срок. При этом, если в коде встречаются специфические оптимизации, предложенные нейросетью, я рассматриваю их как повод для глубокого рефакторинга и обучения.
Технические фишки и "QA-боли".
Для меня, как для автоматизатора это приложение - настоящая "золотая жила". В системе реализованы:
Сложные финансовые транзакции: proration (пропорциональный расчет) при смене тарифа в середине периода
Строгая логика открытия/закрытия рабочих смен сотрудникам
Интеграция с RAG: чат-бот поддержки (пока хромой, но если ответить не сможет - создаст заявку, которая прилетит уже непосредственно ко мне)
Планы на будущее: Python QA Automation
Сейчас проект находится в стадии продакшена, и следующая большая цель - превратить его в эталон стабильности. Я начинаю разработку комплексного фреймворка на Python.
Почему Python, помимо того, что он просто мне нравится?
Это стандарт в индустрии автоматизации. Мой план покрытия включает:
API Testing (Pytest + Requests): проверка всех эндпоинтов, от авторизации до обработки вебхуков платежных систем
UI Automation (Playwright): сквозные сценарии (E2E), такие как "Создание клиента -> Оформление договора -> Возврат -> Формирование отчета"
Contract Testing: валидация корректности обмена данными между фронтендом и бэкендом.
Этот проект стал для меня доказательством того, что современный инженер - это не тот, кто помнит все библиотеки наизусть, а тот, кто умеет оркестрировать современные инструменты (включая AI) для создания надежного продукта и выстраивания процессов контроля качества вокруг него.
Всем добра!
pyuscherbakov
Звучит интересно, но создаётся впечатление, что статья отвечает на вопрос «зачем», а не «как»
Kirs1704 Автор
Ответ простой - потому что мне это интересно)
Kirs1704 Автор
Ну или если вопрос к формулировке заголовка, то да - "зачем" возможно тут больше подходит. Но тут, опять же, ответ тот же