Проект 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-технологий и программирования;
- использование платформы в качестве движка (поставщика данных и ресурсов) при разработке публичных сайтов.
Проект является СТАРТАПОМ, активно дорабатывается и развивается. Мы будем рады любой помощи и рекомендациям по его улучшению!