Разработали MVP SaaS-решения для проведения корпоративных закупок и тендеров
Evrone помог IT-компания Интелкон разработать сервис для проведения тендеров в электронной форме.
Иногда они привлекают сторонних специалистов с нужными компетенциями — так Evrone помог Интелкону разработать сервис для проведения тендеров в электронной форме.
Задача — автоматизировать процесс подачи заявок на тендер
Коммерческие тендеры очень похожи на государственные. Они требуют столько же внимания к деталям и бюрократического подхода. Обычно тендерная заявка подаётся на бумаге, содержит много цифр, которые надо проверить с точностью до десятых и сотых. Если в конкурсе на проект участвуют несколько подрядчиков, генеральный подрядчик вынужден разбираться со всей документацией, а она может быть расписана на сотнях листов.
Интелкон предложил своему клиенту оцифровать этот процесс с помощью решения для автоматизации документооборота и сократить время на проведение тендеров. Вместо тонн распечаток и беготни из отдела в отдел — электронная торговая площадка, база подрядчиков с управлением доступом, проведение конкурса прямо на площадке.
Основное техническое требование предъявлялось к фронтенду — не использовать TypeScript. Команда Интелкона объяснила это тем, что в будущем так будет проще найти людей для поддержки продукта, а на этапе MVP это сэкономит время на запуск.
Решение — MVP сервиса для проведения коммерческих тендеров за 6 месяцев
За 6 месяцев мы разработали MVP системы для управления электронными тендерами с фронтендом на React+JavaScript и бэкендом на Python+Django. Чтобы поскорее запуститься, мы по максимуму использовали инфраструктуру Django и отказались от архитектурной сложности. Чтобы поддерживать продукт было легко, придерживались методологии «12 factor app».
Вот как в итоге работает продукт:
- Генеральный подрядчик получает доступ к системе и создаёт конкурс на выполнение
каких-либо работ со всеми документами, чертежами, суммами и датами. - Менеджер генерального подрядчика рассылает субподрядчикам приглашения на регистрацию в системе. Они заводят себе аккаунты.
- Субподрядчики с верифицированными аккаунтами могут откликнуться на текущий конкурс, следить за другими тендерами генерального подрядчика и отправлять заявки.
- После проведения конкурса менеджер генерального подрядчика рассылает участникам результаты с определением победителя, они подписывают все документы между собой.
Определяем функциональность MVP
Работу над платформой для создания тендеров мы начали с обсуждения будущего приложения и определения
Так, например, перевод всех заявок в электронный вид сделал бы жизнь сотрудников проще, потому что теперь не надо делать двойную работу и распечатывать документы. Их достаточно просто заполнить и загрузить через форму. А вот от возможности выбрать отдельные работы в рамках одной заявки мы отказались. Идея хорошая, но ей место в обновлении, поэтому её отправили в бэклог.
Разрабатываем бэкенд и фронтенд
Разработка бэкенда началась на месяц раньше фронтенда. Этот сдвиг был сделан из соображений разумного отношения к бюджету, потому что начни мы одновременно — фронтенд простаивал бы в ожидании задач.
Бекенд написан на Python 3.8 с фреймворком Django 3.2. В качестве БД выбрали PostgreSQL 13, брокер сообщений — Redis. Для запуска асинхронных и периодических задач используем Celery, для управления зависимостями — poetry.
Фронтенд — SPA на React+JavaScript. Централизованное хранилище данных реализовано на Redux + reduxjs/toolkit. В качестве библиотек для работы с API запросами используем
Для restlike API используется Django Rest Framework, документирование производится с помощью Swagger (автогенерация библиотекой
Для решения одной из основных задач автоматизации закупок — работы с электронными документами — интегрировали генерацию
Для некоторых моделей проекта используется паттерн разработки «полиморфизм», реализованный с помощью
Для создания интерфейса использовали Material UI — это также было изначальным требованием клиента. С одной стороны, это поставило нас в рамки, с другой, не пришлось разрабатывать интерфейс с нуля. Это ускоряет разработку: достаточно взять готовые компоненты и подправить, если надо.
Последние месяцы мы связывали фронтенд с бэкендом, добавляли эндпоинты API, а также дорабатывали функции по требованию заказчика.
Мы были предупреждены, что требования могут меняться в процессе, потому что продукт буквально создаётся с нуля. К счастью, наши менеджеры были к этому готовы и мы смогли выстроить правильную коммуникацию, чтобы получить хороший результат: вместо того, чтобы ждать от клиента «пинков», мы сами активно спрашивали о результатах опросов, сборе новых требований.
Результат
Сейчас MVP запущен, проходит тестирование «в бою», Интелкон знакомит заказчиков с автоматизацией тендерной работы. После первых демо мы собрали список доработок и багов и сразу исправили их, чтобы первым пользователям было комфортнее работать с продуктом.
В планах — собрать новые требования пользователей и довести систему управления тендерами до полноценной первой версии. Например, мы уже внедряем расширение, связанное со спецификой хранения данных у подрядчиков — импорт таблиц XLS и CSV.
Если вы ищете команду для создания решения для автоматизации управления