Раздаем PRO бесплатно (подробнее) — поддержите проект на GitHub, поставьте звезду основному репозиторию и получите доступ к PRO.

Totum — база данных для непрограммистов

х5 раз быстрее, чем стандартные инструменты разработки 👀
На вашем сервере — просто установить, даже если вы не специалист в серверах 👌
Программирование логики кодом — специальным простым кодом для непрограммистов 🔥
Легко изучаемый и масштабируемый вместе с ростом бизнеса 🎉
Вместо целой команды проект могут вести 1-2 специалиста ✌️
Минимальные требования к стартовой квалификации специалиста — вы можете научить разрабатывать на Totum вашего тестировщика, продакта, проджекта, инженера, юриста или финансиста, а иногда и даже водителя!
Бесплатно MIT license ⟹
Универсальный UI, логика на основе простых кодов, автоматические действия, права доступа, логгирование, API и куча всего остального 👍
Посчитайте время производства проекта на Totum воспользовавшись калькулятором ⟹

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

Totum — гибрид базы данных и электронных таблиц.

Готовый frontend — для десктопов и мобильных устройств.

Small-code — программирование для непрограммистов.

Документация и учебный курс — первая таблица через 30 мин.

WEB, open-source — устанавливается на собственный сервер.

Многоуровневый доступ — Роли и динамические блокировки.

API — интегрируйтесь с чем угодно.

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

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

Алекс П. Totum-разработчик

Totum, кому подойдет и какие ресурсы потребуются
В виде текста ⎆

Области применения

Одна платформа — множество вариантов применения

Собирайте данные ⟹ Обрабатывайте ⟹ Выполняйте действия ⟹ Интегрируйте ⟹ Создавайте отчеты

Инструмент для цифровой трансформации в любом бизнесе, особенно если:

— Вы не-программист и у вас нет разработчиков или они заняты;

— В вашем бизнесе стало слишком много эксель-табличек;

— В них уже много данных — десятки-сотни тысячи строк или уже миллионы;

— Нужна полноценная база данный с быстрым поиском и хранением множества связей;

— Нужна обработка логики и автоматических действий, и у вас не получается это сделать в табличных редакторах;

— Нужно быстрое подключение по API, которое не получается сделать в табличных редакторах;

— Нужно жесткое разделение ролей и прав доступа, чтобы не светить важные цифры;

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

Посмотрите реализованные проекты — в этом разделе форума на GitHub 🙌

Если вы junior или middle backend-разработчик, то Totum — это ваша суперсила 🏃 💨

Totum превращает вас в полноценную команду, которая может в кратчайшие сроки выпустить законченный проект с реализацией большинства клиентских пожеланий!

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

Графики на основе chart.js.

Вы можете настраивать отображаемые данные и вид.

Возможны комбинированные отображения с двумя разными осями по Y.

Самое универсальное поле.

Хранит строковое значение любой длины.

При сравнениях Строки в виде чисел сравниваются с числами как числа.

Хранит целое или десятичное число до 10 знаков после запятой.

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

Имеет настраиваемое автоматическое округление вводимого значения в том числе с заданным шагом.

Выпадающие списки.

Создаются вручную или автоматически на основе другой таблицы.

Подключаются превью и секции.

Есть поиск по значениям.

Могут быть сформированы кодом по условиям.


= : selectRowListForSelect(table: 'chairs'; field: 'name'; where: 'id' != 6; order: 'id' asc; section: 'type'; preview: 'img')
        

Сворачивающиеся иерархические списки.

Поиск значений.

Одинарный и множественный выбор.

Настраиваемый запрет на выбор папок.

Классический чекбокс.

В кодах true и false.

Дата или Дата + время.

Можно выбрать в выпадающем окне или ввести вручную.

totum-code имеет несколько инструментов для обработки дат.

Например, вычисление даты последнего дня текущего месяца:


= : dateAdd(date: $fd; days: $days; format: "Y-m-d")

days: dateFormat(date: $fd; format: "t") - 1

~fd: dateFormat(date: $#nd; format: "Y-m-01")
        

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

Автоматическая защита от множественного нажатия.

Возможность нажать кнопку программными методами.

Большие тексты с форматированием.

Можно настроить подсветку синтаксиса и ограничить объем текста передаваемый в браузер.

Для редактирования открывается во всплывающем окне.

Ситуативные комментарии.

Показывают кто и когда оставил заметку.

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

Один или несколько файлов.

Автоматическое добавление хэша к пути, для усложнения подбора имени.

Превью для .png и .jpg

Пароль в скрытом виде.

Хранится в md5.

Не логгируется при изменении.

Данные в формате JSON.

Редактируются во всплывающем окне через jsoneditor.

Данные могут быть быстро получены с любого уровня вложенной структуры:


= : #json_field[data][datasets][0][borderColor]

// Результат: blue
        

Разрабатывайте сложные продукты

Программируйте логику небольшими функциональными кодами

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

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

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

В большинстве полей коды маленькие — до 5-10 строк.

Totum в интерфейсе обеспечивает:

— подсветку;

— поиск и подстановку:

—-- адресов таблиц;

—-- наименований полей;

—-- переменных;

— автозаполнение функций;

— и много всего остального ...

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


= : listSum(list: $list) + #fixed_costs

list: selectList(table: 'orders'; field: 'cost'; where: 'number' = $listNumbers)

listNumbers: selectList(table: 'orders'; field: 'number'; where: 'date' >= #first_day_months; where: 'orderStatus' = #final_status)

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


a1=: set(table: 'table'; field: 'field_1' = "value_1"; field: 'field_2' = "value_2"; where: 'condition_field' = #condition)

a2=: recalculate(table: 'summary')

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


f1=: setFormat(condition: #status = 3; block: true)

f2=: setFormat(condition: $#nu = 10; block: false)

f3=: setFormat(condition: $calc > 10; background: "tomato"; color: "white")

calc: listCount(list: $list)
        list: selectList(table: $#ntn; field: 'id')

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

Разобраться поможет — бесплатный! учебный курс, форум и техподдержка в Telegram 👌

Дорабатывайте прямо в эксплуатирующемся проекте

Благодаря PHP, ваша ошибка при разработке не приведет к обрушению всего сервера. А встроенные инструменты отладки и тестирования помогут вам вносить изменения в работающие проекты на лету.

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

Totum не использует фреймворки, легковесен и может успешно работать на серверах среднего и эконом класса:


CPU 2х2.2ГГц 512Мб RAM PHP = 8.0 PostgreSQL >= 10 Nginx UNIX
  

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

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

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

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

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

Встроенная система логгирования и гибкие права доступа:

Настраивайте разрешения на видимость, добавление, изменение, удаление, дублирование и доступ к логам по ролям. Отслеживайте авторизации и действия пользователей. Всегда известно, кто совершил то или иное действие.

Печать таблиц, печать по HTML шаблонам, экспорт/импорт в .csv из коробки:

Просто не тратьте на это время и все...

Обслуживайте несколько проектов на одном сервере:

Это обеспечивает консольная утилита... Бекапы, дублирование, пароли, обновления, выполнение shell-скриптов из кодов Totum!


cd ~/totum-mit && bin/totum -h
    

В документации ⎆

Используйте типовые возможности интерфейса

Открывайте таблицы с необходимой фильтрацией для показа проваливания в данные.

Используйте шаблоны таблиц для заполнения их ситуативными данными.

Показывайте внешние ресурсы в iframe.

Выбирайте тип показа iframe, self, blank, top.

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

Автоматически закрывайте окно при успешном завершении выполнения действия.

Контекстное меню для всех полей.

Полное значение поля.

Автоматически генерируемая дополнительная информация для выпадающих списков.

Картинки и текст расчитываемые при показе контекстного меню.

Размещение в контекстном меню дополнительных кнопок.

Разделение полей на сворачивающиеся секции.

Распределение полей по группам.

Управление заливкой и обводкой для групп.

Динамическая подстройка ширин полей под размеры экрана и автоматическое выравнивание.

Управление точками переноса полей.

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

Скрытие заголовков и обводок полей.

Встроенные нотификации.

Приоритет показа и даты активности.

Групповые действия.

Расширенные нотификации (карточки звонков, заказов, клиентов и т.д...)

Всплывающая панель ввода.

Срабатывание на enter.

Выполнение произвольного действия.

Настраиваемое HTML-содержимое.

Автоматическая активация по триггеру.

Настройка текста кнопки подтверждения.

Множественный ввод значений.

Относительные изменения для числовых полей.

Копирование значений в буфер.

Блокировка одновременного изменения нескольких колонок.

Сортировки по отображаемым строкам.

Сохраняемый ручной порядок сортировки строк.

Фильтры по нескольким колонкам.

Поиск и инвертация значений в фильтрах.

Фильтрация по ручным значениям в полях.

Адаптируйте под разные ширины экранов

Используйте единую настройку адаптивности под настольный компьютер и мобильные устройства.

Вам не нужно знать CSS/GRID/FLEX для того, чтобы сделать понятный, адаптивный интерфейс на Totum.

Огромный набор вариантов обеспечивает одна функция и несколько параметров.

Вашe решение будет выглядеть аккуратно на всех ширинах экранов.

Вам нужен только браузер

Разработка и эксплуатация ведутся в одной среде. Таблицы, поля и их настройки создаются и управляются мышкой.

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

API, который вам нравится

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

Обменивайтесь данными с Totum через POST в формате JSON.

Инициируйте обращение к стороннему серверу непосредственно из totum-кода.

Напишите свой микросервис на totum-code отвечающий на GET/POST запросы.

Вы сможете написать интеграции с сайтом, банком, мессенджерами и любыми другими сервисами работающими в web.


// Вызываем Ю-кассу из Totum-code:

=: getFromScript(uri: str`"https://" + $store_id + ":" + $store_key + "@api.yookassa.ru/v3/payments"`; headers: $headers; posts: $post)
    store_id: "034942"
    store_key: "test_HUoYJ_cyBhB"

headers: listCreate(item: str`"Idempotence-Key:" + $idempotence`; item: "Content-Type:application/json")
    idempotence: numRand(min: 1000; max: 10000)

post: jsonCreate(data: $post_row)
    post_row: rowCreate(field: "amount" = $amount; field: "capture" = true; field: "confirmation" = $confirmation)
        amount: rowCreate(field: "value" = #total; field: "currency" = "RUB")
        confirmation: rowCreate(field: "type" = "redirect"; field: "return_url" = "https://ru.totum.online")

Подключаем Totum к Slack и прочим SaaS через n8n.io:

Инструкция ⎆

Создаем Telegram бота и подключаем к Totum:

Инструкция ⎆

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

Используйте вид панелями, kanban и деревья в тех таблицах, где вам это нужно:

Расширьте возможности ваших CRM:

Готовый расширяемый шаблон интеграции с amoCRM:

Создавайте карточки в Totum параллельно с карточками в amo;

Переходите из карточки в amo в карточку в Totum;

Полная синхронизация статусов между amo и Totum;

Возвращайте произвольные данные из карточки Totum в amo.

Посмотреть описание интеграции ⎆

Готовый расширяемый шаблон интеграции с Битрикс24:

Создавайте карточки в Totum параллельно с карточками в Битрикс;

Переходите из карточки в Битрикс в карточку в Totum;

Полная синхронизация статусов между Битрикс и Totum;

Возвращайте произвольные данные из карточки Totum в Битрикс.

Посмотреть описание интеграции ⎆

Формы для сбора данных:

— Быстро создавайте формы из таблиц;

— Без лицензионных лимитов;

— С последующей обработкой добавленной строки;

— С перенаправлением на платежные системы;

В том числе с возможностью загружать файлы:

Посмотрите учебные видео на YouTube:

Обучение

Учебный курс — это последовательные ~180 заданий по 5 минут от простого к сложному в формате how-to, которые позволят вам максимально быстро приступить к разработке своего проекта!

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

Как пример простого комплексного решения для начинающих посмотрите этот мастеркласс ⟹

Учебное сопровождение проектов:

Как частные занятия. Вы делаете свой проект, у вас что-то получается, что-то нет. Вы бронируете время полчаса или час по предоплаченному пакету.

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

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

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

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

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

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

Если вы хотите помочь проекту

Если вы успешно используете Totum — мы будем благодарны, если вы зарегистрируетесь и поставите звезду ⭐ основному репозиторию ⟹

А также поделитесь своим опытом здесь: сделанные проекты ⟹

Спасибо 🙏

Если вы хотите привлечь специалистов к разработке вашего проекта — посмотрите страницу партнеров 🥷

PRO-версия

Быстрый, типотолерантный поиск.

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

Возможность добавить кнопки дополнительных действий на плашку поиска.

Разбивка результатов по каталогам.

Возможность показать результат, только по выбранному каталогу.

Доступ к файлам с проверкой прав пользователя.

При запросе файла будет проверен доступ пользователя к:

— таблице;

— циклу;

— видимости поля с файлами;

— конкретной строке.

Темная тема.

Вручную переведены все системные цвета.

Цвета подсветки кодов модифицированы для отображения в темном режиме.

Пользовательские цвета переводятся в темный режим автоматически

— видимости поля с файлами;

— конкретной строке.

LDAP авторизация.

Можно подключить как к серверу AD, так и к unix-based.

Можно подключить несколько разных доменов.

С гибкими настройкими соответствия dn и ролей.

А для сервера AD с учетом прямых и косвенных вхождений в группы.

С назначением и сохранением ролей поверх загружаемых по LDAP.

SaaS-сервисы Totum:

То, что не получилось упаковать в локальную версию.

Генерация .xlsx, .docx или .pdf, загрузка их .xlsx, предпросмотр офисных файлов и прочее...

Когда используешь систему на полную катушку.

Преимущества open source

Бесплатно

Community версия Totum распространяется по MIT-лицензии. Бесплатно для любого типа использования!

Вся информация может находится в защищенном контуре компании

Totum — self hosted. Вы можете настроить любые политики доступа к серверу, которым управляете сами.

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

Поэтому Totum может быть использован для автоматизации работы отдельных подразделений, а особенно эффективно — в качестве пилотных прототипов!

Копия Totum предсказуемо останется у вас навсегда

Вы делаете полную копию всех скриптов платформы на свой сервер — вы не зависите от работоспособности серверов разработчиков, а также можете модифицировать код платформы при необходимости.

Totum масштабируемый

В случае резкого успеха и масштабного роста вашей базы данных Totum-решение выдержит нагрузку.

Даже если некоторые элементы решения окажутся сконструированными для меньшей нагрузки — вы сможете их модифицировать.

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

Демо

Если вы хотите попробовать Totum до установки на собственный сервер — оставьте заявку. Мы пришлем доступ на почту в течении 10 минут. Все происходит автоматически в любое время суток.