О проекте "InterReports"


Проект InterReports представляет собой экспериментальную платформу для проектирования масштабируемых интерфейсов и приложений CMS-типа. Идеология платформы заключается в предоставлении самодостаточного инструмента для визуального создания web-приложений любому пользователю сети интернет. Платформа InterReports (далее - платформа) предназначена для быстрой разработки на базе нее масштабируемых приложений с последующим удаленным администрированием и сопровождением, например админки какого-либо ресурса, начиная с названия и заканчивая функционирующим масштабируемым продуктом, независимым от сторонних СУБД, фреймворков и библиотек.

Изначально платформа проектировалась как система интерактивных отчетов с получением данных из сторонних СУБД, откуда и появилось ее историческое название - InterReports.
Постепенно платформа трансформировалась в некую универсальную настраиваемую заготовку (действующий полуфабрикат) для построения на ее основе CMS-приложений, например админок.
Далее платформа обзавелась самостоятельным подобием иерархической СУБД для автономного хранения и работы с данными, что расширило сферу ее применения и позволило использовать в роли самостоятельного движка.

Система построена на "голом" ASP.NET и содержит в себе все необходимое для ее функционирования без использования сторонних разработок, библиотек и баз данных. При этом сама система поддерживает работу с некоторыми популярными СУБД.

Платформа идеологически реализована по принципу "все в одном" и представляет собой коробочное решение из следующих разработок:
- псевдо-СУБД, используемая для хранения профилей, справочников и аккаунтов;
- фреймворк: работа с псевдо-СУБД и файловой системой, собственная гибридная система авторизации, разграничение прав доступа, api платформы, архитектура модуля и т.п.;
- модули и клиентские библиотеки, реализующие функциональность платформы;
- встроенная визуальная оболочка IR-shell (специализированный модуль), реализующая функционал масштабируемого web-приложения на базе профиля и модулей.

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

Суть систем на базе данной платформы, кратко:
1. На базе платформы создаются приложения, реализующие свою функциональность в форме модулей и подключаемых ресурсов.
2. Под приложения создаются шаблоны профилей, реализующие различный формат представления данных и функциональность приложения.
3. На базе шаблонов Администраторами профилей создаются сами профили, каждый из которых представляет собой отдельную информационную сущность приложения.
3. В профилях регистрируются пользователи, первый из них становится владельцем профиля.
4. Пользователям профилей назначаются роли в соответствии предоставляемым им уровнем привилегий.

Для понимания сути платформы ее условно можно сравнить с платформой "1С" в web-пространстве, а шаблоны профилей - подобие конфигураций под среду "1С". На базе одного шаблона можно развернуть множество профилей, регистрировать в них пользователей, визуально конфигурировать и программировать их. Удачные реализации профилей и их хранилищ также возможно упаковать в отдельные шаблоны.

На данный момент представлено 2 шаблона, позволяющие оценить функциональность системы в процессе ее полноценного тестового использования:
- шаблон "Конструктор личного кабинета", позволяющий пользователям в оболочке "IR-shell" создавать и расширять свое личное пространство, наделяя его уникальной функциональностью;
- шаблон "Конструируемый интернет-магазин штучных товаров", предлагающий готовый к использованию магазин штучных товаров на базе приложения "Shop" с возможностью его реконструирования под собственные нужды через админку в оболочке "IR-shell": настраиваемость под любую номенклатуру и характеристики штучных товаров, редактируемость товарного каталога и макета магазина, интегрируемость со сторонними СУБД.

Специализация web-приложений на базе платформы:
- системы интерактивных отчетов (зарождение платформы началось с такой системы);
- микро-сервисы;
- личные кабинеты пользователей;
- ERP/CRM-системы;
- бизнес системы;
- генераторы документов;
- CMS и админки БД;
- хранилища ресурсов;
- системы мониторинга и контроля (динамические мнемосхемы);
- одностраничные динамичные приложения;
- экспериментальные площадки в сфере образования, например при изучении web-технологий и программирования;
- использование платформы в качестве движка (поставщика данных и ресурсов) при разработке публичных сайтов.

Проект является СТАРТАПОМ, активно дорабатывается и развивается. Мы будем рады любой помощи и рекомендациям по его улучшению!