{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Totum — opensource-база данных для непрограммистов для разработки CRM-, ERP-, *RM-систем под конкретные задачи

Инструмент для цифровизации бизнеса в момент, когда он вырос из XLS-таблиц. Универсальный UI, логика на основе простых кодов, автоматические действия, права доступа, логирование, API и куча всего остального. Лицензия MIT — бесплатно 👍 Когда хотел стать программистом, но как-то руки не дошли.

На вашем сервере, легко изучаемая и масштабируемая вместе с ростом бизнеса 🎉

Вместо целой команды проект могут вести 1-2 специалиста ✌

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

Лицензия: MIT (бесплатно)

Для каких задач

Для быстрого конструирования внутренних бизнес-приложений непрограммистами 💪 👀

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

Это нужно и эффективно, когда под ваши требования на рынке нет готовых вариантов.

В общем — когда в XLS-табличках уже запутались, а до SAP еще какое-то время.

Дальше расскажу про саму систему.

Про один из проектов была вот такая статья на vc.

  • Управление производством
  • Финансовый учет
  • Инвентаризация оборудования
  • Ведение заказов
  • Учет услуг
  • Перенос учета из Excel
  • Склады
  • итп...

Сервер + браузер + таблицы + small-code

Сервер

Тотум ставится на ваш сервер:

Totum не использует фреймворки, легковесен и может успешно работать на серверах среднего и эконом класса. PHP 8.0, который мы используем для текущей версии, имеет JIT и реально быстро переваривает даже замороченные расчеты.

Все через браузер

Дальше вы работаете с базой через браузер.

Глобально это выглядит так:

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

Сборка и эксплуатация решения идет через один интерфейс, в котором разработчик (создатель), имеет дополнительный слой с технической информацией:

База данных как интерфейс — х10 к скорости разработки 🏃 💨

Комбинируйте готовые блоки:

  • строки;
  • числа;
  • файлы;
  • тексты;
  • график;
  • ...

Small-code — код для неразработчиков

Totum написан на PHP, но внутри программируется собственным языком — totum-кодом.

Это очень простой язык, который создан неразработчиками для неразработчиков.

Разработчику на Totum не нужно знать SQL и его особенности — вызов и запись данных тоже осуществляется на totum-коде.

В большинстве полей коды маленькие — до 5-10 строк. Не сложнее, чем формулы в Excel, а по читаемости в 10 раз лучше.

Коды привязаны к полям и разделены по типам действия:

Значения (формулы)

Одни вычисляют значение аналогично формуле Excel:

Действия

Другие, следят за триггерами изменений и, если они сработали, выполняют написанные в них действия.

Форматирование

Третий тип кодов отвечает за внешний вид полей в зависимости от набора данных.

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

Знание html, адресация доменов и общие познания про то, как работает интернет, будут в плюс, но вообще нужно знать лишь сам Totum.

Разобраться поможет:

бесплатный! учебный курс

— техподдержка в Telegram 👌

Автоматические транзакции и одновременный доступ

В качестве базы данных Totum использует PostgreSQL, поэтому:

Все действия выстраиваются в цепочки: если в процессе выполнения цепочки сработала отмена или произошла ошибка — вся цепочка будет отменена.

Можно работать одновременно: если два пользователя одновременно внесли изменение в одну и ту же таблицу, то действие, сохраняемое вторым, будет автоматически перезапущено.

Тотум заботится о консистентности данных в системе автоматически. Даже в вашем первом проекте уровень согласованности данных в проекте будет на уровне команды pro-разработчиков.

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

Встроенные инструменты для бекапирования — в комплекте.

API

Cам Totum может вызывать сторонние серверы и сторонние серверы могут вызывать микросервисы в Totum, которые вы можете запрограммировать на totum-коде.

Таким образом можно подключить все, что обменивается данными через интернет, например Telegram-бот. А если взять коннектор типа Zapier на тарифе, который дает возможность исполнять POST, то можно быстро законнектить кучу SAAS сервисов. Сделаем летом больше видеинструкций по этой теме.

Если у вас есть специальные серверные скрипты, то их можно вызвать по SSH непосредственно из totum-кода и получить ответ непосредственно в Totum.

Не только таблицы

Деревья: есть не самый простой функционал с древовидным отображением строк в таблицах (не для первого дня изучения Тотум).

Карточки типа Канбан: взал картинку из проекта опубликованного сообществом. Темная тема это плагин для браузера, а не возможность Тотум (темную тему чуть позже сделаем):

Всякие разные всплывающие окна, сворачивающиеся секции, относительный и групповой ввод значений, контекстные меню итп:

Работа над ошибками

Совсем на старте у нас были некоторые неоправдавшиеся гипотезы — нам про них писали в комментариях к этой статье на Habr.

Например: использование ioncube-шифрования. Изменение коммерческой модели и пара хороших идей по оптимизации поспособствовали тому, что мы переписали ядро более экономным образом — уже без шифрования и на улучшенной архитектуре.

В те древние времена не было консольного установщика — добавили.

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

Очень все просили Docker-image — сделали, причем со скриптом автоустановки. Одним образом не обошлось — весь комплекс состоит из totum + postgres + exim. Но если вы не знаете что это, то не заморачивайтесь — вот видео, поставите со всем фаршем за 10 минут на Ubuntu 20 даже, если вы впервые видите сервер.

Просили переписать на laravel и засунуть внутрь Slim — это нет, сознательно не стали добавлять лишних фреймворков.

Еще про безопасность ругались — нет типа ограничений, но это уже от конкретного решения зависит, ставит ли проектировщик проекта серверные блокировки или только защиту от ошибки пальцев оставляет или вообще "делай, что хочешь".

Была мысль, что ляжет по нагрузке из-за плохой архитектуры конечных решений, тк делают непрофессионалы — если в вашем решении таблицы на десятки миллионов строк, то может быть такое, поэтому в этом случае можно написать нам вопрос, как лучше сделать. Если миллионов строк не предвидится — то не переживайте. Если вы в принципе хотите делать хорошую архитектуру на Totum — я записал вам пару видео про нее. Мы регулярно вывешиваем примеры с видео по запросам пользователей. Можно посмотреть в этом плейлисте на нашем канале YouTube.

Если вы переживаете, что у вас компания на 5000 пользователей будет эксплуатировать — то в принципе подумайте, нужен ли вам Тотум. Для корпораций можно проверять так — смотрите основной репо на GitHub и, если у нас там уже больше звезд, чем пользователей в вашей потенциальной системе — то можно делать. Если меньше, то максимум локальное что-то для отдельно взятого отдела.

Как можно поучаствовать:

— рассказать о своем проекте, когда сделали, здесь

— написать нам, если вам вдруг выпал warning, так-как есть миллион комбинаций использования, мы проверили не все 100% просто потому, что пользователи выдумывают такие, про которые мы не догадывались;

— если у вас есть какая-то идея по новому функционалу — пишите здесь. Не все добавится в MIT и, возможно, не все предложения реализуются, но по факту мы много чего улучшаем именно по таким запросам;

— если вы хотите добровольно помочь нам с переводом на любой язык, в первую очередь на испанский или португальский — напишите мне в Telegram @alexeypolunin

— если вы хотите добавиться на страницу Партнеры (разработчики на Тотум), также напишите мне в Telegram @alexeypolunin

— если сделали проект для себя и вам понравилось — поставьте звезду основному репо, мы всем стархолдерам дадим бесплатный доступ к PRO, когда он будет (скорее всего в Августе-Сентябре, кому-то же его нужно будет тестировать).

Обучение

Больше всего усилий за последний год мы потратили на учебные материалы — это реально так.

Сейчас есть базовая часть Учебного курса, форум на GitHub и можно написать мне в telegram

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

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

Если вы читаете эту статью в 23 году или позже, то вангую, что все уже есть.

Сколько нужно времени на уровень, достаточный для несложного проекта?

Месяц — если по часу по вечерам.

Неделя-полторы — если в будни по 4 часа в день.

Пользователи с успешными проектами в среднем тратили около полутора месяцев параллельно с другими задачами до начала их эксплуатации на своем предприятии.

Заключение

Спасибо, что заинтересовались и дочитали. Если у вас возникло желание «потыкать» Totum самостоятельно, то это можно сделать на demo-сервере. Там есть некоторые ограничения на файлы и вызов сторонних скриптов, и проживет он 3 месяца, но в остальном Totum там такой же, как и на GitHub.

Если есть пожелания — пишите в комментариях или напрямую, мы стараемся учесть все, что можем реализовать.

Если у вас есть крутая экспертиза в развитии open source проектов (желательно за пределами границы РФ) и вы хотите ей поделиться — проявитесь.

Если вам нравится идея, но сами вы разрабатывать не хотите — посмотрите сюда.

Всем классных проектов!

0
18 комментариев
Написать комментарий...
Game Topia

Можете в два предложения сказать что же это все таки такое?
Выглядит прикольно, но не понятно что это и зачем это нужно..

И жутко пугает "что-то бесплатное" в контексте бизнеса. Если нет денег, то не стоит лезть в бизнес. Что-то не так нажмет и все расчеты в трубу. Что потом делать?

Ответить
Развернуть ветку
uonick

Microsoft Access)

Ответить
Развернуть ветку
Алексей Полунин
Автор

Угу, типа Microsoft Access for the modern age. Но я кстати им никогда не пользовался :)

Ответить
Развернуть ветку
Александр

и на notion похоже чем-то, хоть глубоко ни с тем ни с тем продуктами не знаком

Ответить
Развернуть ветку
Алексей Полунин
Автор

Таблички для конструирования ERP/CRM и прочих систем с данными — база данных. И да, сама система бесплатная, но на конечный продукт то усилия надо потратить. Иногда «не так нажимают», но меньше чем в гуглдоках.

Ответить
Развернуть ветку
Александр

А для вас профит-то в чем? Продаёте услуги по разработке на продукте?

Ответить
Развернуть ветку
Алексей Полунин
Автор

Мы сами уже не разрабатываем конечные решения так как это по времени сложно совмещать с разработкой платформы и техподдержкой. Те, кто использует сейчас разрабатывали в основном себе сами, а если нужно на заказ есть несколько партнеров: https://ru.totum.online/partners

Наш интерес в дальнейшей PRO-версии (будет постепенно появляться начиная с Сентября), которую мы сейчас раздаем бесплатно за звездочки на GitHub: https://ru.totum.online/pro

Ответить
Развернуть ветку
Zen63

А вместо AirTable получится ее использовать? Обязательно нужны картинки и фотогаллереи в ячейках, редактирование строк в виде карточек и api отдающий таблицу в виде json.

Давно есть необходимость в selfhosted airtable на php. Пока встречал клоны только на node.js.

Спасибо.

Ответить
Развернуть ветку
Алексей Полунин
Автор

Картинки можно, но там вам нужно посмотреть устроит ли вас такое представление — напишите мне в телеграм @alexeypolunin я скину примеры.

Те airtable вообще упор на картинки сделал, для нас же они ок, но это не центральный элемент интерфейса.

Строки в виде карточек есть — чуть по другому сделано чем в airtable.

API есть настраиваемое — вот в документации про него (https://ru.docs.totum.online/api), там есть 2 видоса.

Ответить
Развернуть ветку
Zen63

Видосы уже смотрю! Очень интересно. В tg написал.

Ответить
Развернуть ветку
Алексей Полунин
Автор

-

Ответить
Развернуть ветку
Александр

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

снизьте сопротивление, покликать хочется, т.к. выглядит интересно и ново.

Ответить
Развернуть ветку
Алексей Полунин
Автор

Ну машина только доступ отправляет и спам не шлет, как это обычно принято :) Спаммеры и без нас адреса знают. Как без почты отправлять отложенное на 5-6 минут сообщение (столько нужно чтоб развернуть копию) мы не знаем.

Ответить
Развернуть ветку
Александр

а, то есть вы демку в докере поднимаете? понял.
разверну локально 🙃

Ответить
Развернуть ветку
Антон Смуров

По описанию выглядит прикольно и перспективно. Мне пока не нужно. Но желаю всяческих успехов, положу в закладки :)

Ответить
Развернуть ветку
Алексей Полунин
Автор

Спс :)

Ответить
Развернуть ветку
Irvin Con

приятно удивлен, что вы появились в рекламе / продукт очень интересный

Ответить
Развернуть ветку
Алексей Полунин
Автор

Спасибо. Да, я рекламирую постепенно, так-как потребность у людей существует постоянно, но ищут редко. Бюджет и охват небольшой получаются.

Ответить
Развернуть ветку
15 комментариев
Раскрывать всегда