Найти в Дзене
MaksМаркет

Хотел сделать простую аналитику для бота — получился SaaS-монстр с модулями под фрилансеров и товарку

Ну что же. Основная часть работы вроде закончена. Но пока я кодил, мозг не выключался — идей появилось еще много. Так что скоро ждите еще больше новых новостей по этому проекту. То есть я создал на данный момент, как мне кажется, годный сайт для фрилансеров и тех, кто работает с товаркой. Ведем финансовые отчеты по проектам. Видим все расходы и доходы в приятной аналитике с графиками. Всё круто, всё понятно. Управление несколькими компаниями Партионный учёт с FIFO методом Складской учёт с остатками Продажи с автоматической прибылью База клиентов и история покупок Категории и SKU товаров Системы оплаты и комиссии Детальная аналитика продаж Аналитика телеграм-ботов (одного или нескольких, если у вас их много). Сайт разрастается функционалом. Идей много, и кажется он вырастет намного больше, чем я планировал. Сейчас активно провожу кастдевы предпринимателей, изучаю их боли и хочу внедрить ещё больше модулей под разные сегменты бизнеса. Пользователи смогут выбирать интересные им модули и о
Оглавление

Ну что же. Основная часть работы вроде закончена. Но пока я кодил, мозг не выключался — идей появилось еще много. Так что скоро ждите еще больше новых новостей по этому проекту.

berketov.ru
berketov.ru

То есть я создал на данный момент, как мне кажется, годный сайт для фрилансеров и тех, кто работает с товаркой.

🔜Модуль для фрилансеров

Ведем финансовые отчеты по проектам. Видим все расходы и доходы в приятной аналитике с графиками. Всё круто, всё понятно.

🔜Модуль для товарки

Управление несколькими компаниями

Партионный учёт с FIFO методом

Складской учёт с остатками

Продажи с автоматической прибылью

База клиентов и история покупок

Категории и SKU товаров

Системы оплаты и комиссии

Детальная аналитика продаж

🔜Модуль третий

Аналитика телеграм-ботов (одного или нескольких, если у вас их много).

Сайт разрастается функционалом. Идей много, и кажется он вырастет намного больше, чем я планировал. Сейчас активно провожу кастдевы предпринимателей, изучаю их боли и хочу внедрить ещё больше модулей под разные сегменты бизнеса.

Пользователи смогут выбирать интересные им модули и оформлять на них ежемесячную подписку.

В ближайшее время займусь фиксом мелких багов и подключением платежки.

Сейчас сайт работает бесплатно — можете потыкать, дать обратную связь: berketov.ru

Немного для тех кто мой фанат, ахахахах (злобно):

Financeberk — это SaaS, где каждый пользователь работает в своей изолированной среде. Данные одного юзера физически не могут попасть к другому. Архитектура построена так, что каждый запрос проверяется: "А ты вообще кто? И точно ли это твои данные?" Никакой веры на слово.

API сделан с параметризованными запросами — все эти SQL-инъекции и прочая хуйня просто не работают по дизайну. Пароли хешируются через bcrypt (занимает ~250ms на один пароль — специально медленно, чтобы брутфорс был невыгоден). Сессии управляются через Flask-Login.

Frontend собран без модных фреймворков — чистый JavaScript. Alpine.js используется только для форм входа/регистрации. Результат? Сайт грузится мгновенно, потому что нет тяжёлых бандлов на 300кб, которые надо сначала скачать, распарсить и выполнить.

Интерфейс сделан в стиле glassmorphism (эти полупрозрачные карточки с размытием), анимации градиентов крутятся на GPU (через transform3d, чтобы браузер использовал видеокарту, а не грузил процессор). Адаптивная вёрстка через CSS Grid и Flexbox. Тёмная тема переключается автоматом в зависимости от настроек системы юзера.

Telegram-боты отправляют события на сайт через webhooks — это работает как микросервис. Бот что-то делает → мгновенно отправляет данные → сайт их записывает. Вся аналитика строится на SQL-запросах с индексами — поиск данных работает быстро даже при росте базы.

Всё это крутится на одном VPS. Nginx раздаёт статику и проксирует запросы на Gunicorn (там 3 процесса обрабатывают запросы параллельно). Сейчас система спокойно выдерживает ~1000 запросов в секунду. SQLite с WAL режимом позволяет читать данные одновременно из разных запросов без блокировок.

Если надо будет масштабироваться — просто переключаемся на PostgreSQL, добавляем Redis для распределённых сессий, и можем разносить нагрузку на несколько серверов.

В общем, штука работает быстро, безопасно и готова расти вместе с нагрузкой.