1C-like облачная web платформа

Хотелось бы представить на суд местного сообщества недавно созданную облачную веб платформу разработанную бывшим 1с-овцем освоившим java, js, ts, react.

1C-like облачная web платформа

Главная фишка - есть возможность писать обработчики событий на языке TypeScript и sql код на триггеры при записи объектов. Редактор кода тоже онлайн и реализован на базе monaco-editor. В нем типизируется все: структура и типы метаданных, данные и элементы формы, события обработчиков.

Интерфейсы TypeScript(*.d.ts файлы) генерируются на лету. Они актуальны и доступны в коде даже без сохранения конфигурации.

Есть онлайн демо:

https://constructor.typeser.com/vc - онлайн erp конструктор-конфигуратор

https://typeser.com/vc - рантайм

Часть заявленного функционала хоть и присутствует в качестве настроек конфигуратора, но еще не работает.

Из этого мог бы получиться отличный стартап, и можно было бы заявить - "Главная проблемма неудач выхода 1С на западный рынок тут решена! Внутренний язык - не странный язык 1С, а популярный язык - TypeScript!". Но оно так не работает. В реальности - нужны инвестиции чтобы отточить и оттестировать функциональность, сделать пару коробочных отраслевых решений.

На текущем этапе реальное ценность платформы(а точнее mvp) - хорошее портфолио для поиска работы на должность Senior Full-Stack Developer.

Если кто предложит способ повысить ценность (предложит реального клиента ищущего аналог платформы 1С или бизнес-партнера который согласится финансировать разработку) - буду премного благодарен.

Ниже идет перевод с английского раздела "о пректе" в job-резюме:

---

Typeser Web Platform — это универсальный инструмент для управления полным жизненным циклом продукта.

  • Разработка: Дизайн, создание и редактирование структуры ERP системы
  • Развертывание и публикация в один клик
  • Работа в разработанной ERP

Цель платформы — ускорить и удешевить разработку ERP-систем, предоставить возможность гибкой и прозрачной предварительной настройки и доработки систем на любом этапе жизненного цикла ИТ-продукта.

Преимущества среды разработки:

  • Cloud IDE — если у вас есть веб-браузер, вы готовы к работе.
  • методы конфигурации компонентов и привязка данных к пользовательскому интерфейсу без кода (в основном с помощью мыши)
  • Презентабельную ERP-систему (готовый mvp) можно построить без единой строчки кода или запроса к базе данных.
  • Низкие стартовые требования к квалификации разработчиков Typeser-окружения
  • в случае кастомного исходного кода (обработка событий UI) и кастомного SQL-запроса (триггеры, просмотр, безопасность уровня записи) платформа предоставляет все необходимые инструменты для синтаксического контроля и выбора доступных полей и функций, в том числе вновь добавленных и не но сохраненные таблицы, поля, элементы пользовательского интерфейса со строгой проверкой типов (TypeScript для кода модулей и MySql для запросов к БД)
  • Лучшая TypeScript ORM для фронтенда, не имеющая аналогов
  • Отсутствие пользовательского кода, исполняемого на сервере. Триггеры SQL, безопасность на уровне просмотра и записи могут полностью покрыть эту функциональность, а также ускорить и снизить стоимость разработки.

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

Состав платформы:

  • Визуальный конструктор ERP (реализован на том же движке пользовательского интерфейса),
  • движок пользовательского интерфейса
  • Портал - выполняет функции авторизации и навигации внутри платформы
  • Серверная Java на AWS Elastic Beanstalk
  • портал,движок (мультиэкземпляры)
  • MySql (мультиэкземпляры) на AWS RDS

Фичи портала

  • архитектура без файлов cookie: портал показывает iframe, содержащий сайт среды выполнения. Токены данных передаются с портала в iframe. Эта архитектура позволяет размещать различные базы данных с их пользовательским интерфейсом b собственным src в одном origin.
  • Встроенная google авторизация
  • В режиме конструктора портал предоставляет функции сохранения/восстановления данных на локальный ПК

Основные функции и инструменты конструктора

  • Визуальный редактор древовидной структуры метаданных и реквизита. Список компонентов:
  • Subsystems (подсистемы),Entity(database tables, сущности: спрачники/документы), Forms: Common and Entity(for Object/Choice/List), Enums, View, Registers, Common modules read-rls(record level security) sql querySQL triggers on write record (ErrorReporting, UpdateRegister)View SQL query
  • визуальный редактор форм с отрисовкой результата на лету
  • Автопривязка DB data ←→ form dataАтрибуты формы: (примитивы, Ссылки, EntityObject (с атрибутами объекта и табличными разделами), DynamicTable (Entity/Enum/View))Перетаскивание и привязка данных формы → элементы формыКоманды автоформы и пользовательские команды → кнопкидобавление и генерация event listeners для элементов формы
  • Широкое использование автотехник: автогенерация форм, автоматические значения свойств, автоматически доступные команды, автоматическая обработка событий
  • Наличие встроенных компонентов пользовательского интерфейса, необходимых для построения ERP-систем (поля данных форм, статические и динамические ui-списки с полями левого соединения любого уровня и т.д.)
  • Классификаторы примитивного типа данных (String, Number, Boolean, Date) qualifiers: length / allowedLength / digits / fractionDigits / allowedSign / dateFractions
  • Предварительные настройки при добавлении нового entity объекта метаданных (Каталог, Документ, Набор констант)
  • Интерактивное создание пользовательских обработчиков событий для элементов формы и команд.
  • Группировка, упорядочивание и переименование метаданных доступны на всех уровнях.
  • Автоматическое добавление стандартных атрибутов таблицы (ref, description, codePrefix, code, date, parent, isFolder, owner, order,posted,postedDate,deletionMark, version) в зависимости от характеристик таблицы (descriptionLength, descriptionSynonym, usingCode(Yes/ No/YesWithPrefix), codeLength, codePrefixLength, usingDate(No/DateTime/Date/Time), иерархический тип (No/HierarchyOfItems/HierarchyFoldersAndItems), владельцы, usingOrdering, usingPosting)

Исходный код и SQL триггеры

  • Особая благодарность Microsoft за Monaco Editor и TypescriptКод SRC в редакторе строго типизирован и автоматически подбирается под доступные методы и поля.
  • Typeser генерирует Typescript-интерфейсы на лету для всех используемых метаданных.(EntityRef/EntityObject<..> /Enums<..>/View/metadata fields)
  • Синтаксический контроль и автовыбор доступного исходного кода в обработчиках событий с учетом структуры текущей конфигурации и формы и доступных параметров обработчика.
  • Асинхронный ORM для getEntityObject и queryForList с типизированным результатом и автоматическим добавлением левых соединений к полям/выборкам/сортировке
  • Генерация дерева хелперов при редактировании запросов к БД (доступные таблицы, поля, разрешения контекста выполнения запроса)
  • Простая разработка пользовательских разрешений и RLS (безопасность на уровне записи) - Гибкая и условная безопасность для чтения и записи данных

Язык MySQL выбран намеренно, так как его проще использовать разработчикам конфигурации. Однако при необходимости разработки корпоративных решений его можно заменить другим (postage SQL, MSSQL и т.д.)

Функциональность для развертывания и администрирования

  • Автоматическое создание и реструктуризация базы данных по структуре метаданных и заданным типам атрибутов
  • Параметр authorizationMode (OwnerOnly / ManualGrantingRequired / EmailAuthenticationRequired / AnonymousAccessAllowed / AnonymousAccessAndOpenConfiguration)
  • сущности Users and UserAccessGroups включены в пустой шаблон конфигурации → функции sql-permission
  • Легкий старт. Перейдите на https://constructor.typeser.com/new (или на свой сайт вместо «new»), выберите исходный шаблон и нажмите «Deploy». Новый сайт с новой демо-системой erp будет развернут по адресу https://typeser.com/your-site-name. Существующая демонстрационная конфигурация и сайт находятся по адресу https://constructor.typeser.com/demo1 https://typeser.com/demo1 В настоящее время поддерживается только desktop браузерами chrome/edge.

Ключевые особенности Run-time

  • Автоматическая генерация интерфейса для навигации между формами в соответствии с включением общих форм, форм списка сущностей и представления в подсистемах.
  • Автоматическая генерация форм (список, выбор, объект) для таблиц сущностей, если формы по умолчанию не определены
  • Автоматическое добавление необходимых элементов в автоформы (динамические таблицы, поля, таблицы значений, flex-группы, вкладки) и стандартные команды (кнопки и панели команд)
  • Автоматическая выборка данных при прокрутке без разбиения на страницы для динамической таблицы и дерева со встроенной сортировкой и фильтрацией
  • Открытие формы-объекта для редактирования объекта из динамической таблицы
  • Редактирование данных формы в полях формы и таблицах значений.
  • Выбор значений ссылочного типа (в том числе многотипных) из выпадающего списка/формы-списка
  • smart-background-batch-auto-update обновление представлений ссылки и данных, помещенных в форму через левое соединение при выборе/изменении (обновление происходит в фоновом режиме при прокрутке или изменении данных формы пользователем или кодом пользователя)
  • Автоматические представления ссылок из пользовательского шаблона
  • Техника no-code для выбора и автонабора данных в поля (choiceParameters: связать фильтрацию выбора с текущими данными формы)
  • Интеллектуальный повторный рендеринг пользовательского интерфейса при изменении атрибута и свойств элементов формы
  • Кэширование метаданных конфигурации, метаданных формы и исходного кода в виде отдельных модулей в браузере.
  • Автонумерация сущностей (включая с префиксацией)
  • Управление версиями объектов — предотвращение сохранения объекта, если тот же объект был изменен в другом сеансе.

---

Сильно не пинайте. Это мой первый пост на vc.com

11
6 комментариев

Отчетов не хватает

согласен. В планах было подключить что то стороннее (что захочет первый клиент)

Комментарий недоступен

Платформа и портфолио нацелены на западный рынок. Тут не знают о существовании 1С.

Тогда это превратится в кастомную разработку