Перейти к содержимому

Платформы и приложения

BalanceAI CRM

Multi-tenant CRM для IT-консультантов и веб-агентств: клиенты, сметы, итальянские электронные счета, домены, серверы и зашифрованное хранилище.

ТипПлатформы и приложения

Задача

Фрилансеры, веб-агентства и IT-консультанты работают в разрозненных инструментах: один для клиентов, другой для смет, таблица для продления доменов, блокнот для доступов к серверам. В Италии есть ещё одно препятствие. Каждый счёт нужно выставлять в формате FatturaPA XML и отправлять через национальную систему обмена (SDI), а большинство CRM этого не умеют. BalanceAI появилась как CRM для моей собственной консалтинговой практики. Потом я переработал её, чтобы ею могли пользоваться и другие компании.

Что я сделал

Я создал мультиарендную (multi-tenant) платформу управления, которая собирает в одном месте клиентов, сметы, счета и техническую сторону работы.

  • Multi-tenant ядро — каждая компания работает с изолированными данными, потому что каждый запрос фильтруется по tenant. Панель суперадминистратора управляет арендаторами, так что одна и та же установка может обслуживать одну компанию или предлагаться как SaaS.
  • Итальянские электронные счета — приложение формирует XML FatturaPA 1.2.1 и отправляет его через API электронных счетов Aruba, кешируя токен входа для каждого tenant. По каждому счёту отслеживаются платежи и сроки.
  • От сметы к счёту — сметы с несколькими позициями и скидками превращаются в счёт за один шаг, так что ничего не приходится вводить дважды.
  • Домены и серверы — даты продления, автоматические запросы WHOIS и подключение к API cPanel/WHM, чтобы истекающие домены и хостинг-аккаунты были видны до того, как станут проблемой для клиента.
  • Зашифрованное хранилище — доступы к серверам, пароли клиентов и личные заметки хранятся с AES-256-CBC и новым случайным IV для каждого значения.
  • Поиск клиента с помощью ИИ — введите название компании или номер плательщика НДС, и модель OpenAI (по умолчанию GPT-4o mini) вернёт адрес, сертифицированную почту и код SDI в строгом JSON, чтобы заполнить карточку клиента. Неизвестные поля возвращаются пустыми, а не угаданными.
  • Массовый импорт — существующие данные загружаются из файлов Excel, CSV, Word и PDF.

Технологии

Node.js и Express, серверный рендеринг страниц на EJS и Bootstrap 5 на фронтенде. Данные хранятся в MySQL или MariaDB. Код разделён на 26 роутеров, по одному на модуль, и 16 моделей данных. Вход через сессии, пароли хешируются bcrypt. Интеграции: электронные счета Aruba, WHOIS, cPanel/WHM и API OpenAI, ключ которого хранится в зашифрованном виде для каждого tenant. Устанавливается на VPS за Nginx или на хостинг с cPanel.

Почему именно так

Сначала BalanceAI была CRM для одной компании. В версии 2.0.0 она стала мультиарендной благодаря скрипту миграции. Скрипт добавляет столбец tenant в каждую таблицу и переносит все существующие записи в tenant 1. Реальные данные за годы работы остались нетронутыми, а та же кодовая база превратилась в продукт, которым могут пользоваться другие агентства. Правило, которое появилось вместе с этим, простое: ни один запрос не выполняется без фильтра по tenant.

Есть идея?
Давайте обсудим.

Сайт, приложение, видео, песня или что-то масштабнее — я готов помочь вам это реализовать.

Связаться со мной
  • Неаполь
  • Идеи
  • Проекты
  • Люди
  • Всегда вперед