
Hello, Habr! We are starting a blog about Idea Platform - a platform for automating business processes.
The solution is designed to ensure that even without being a professional programmer and technology expert, develop complex applications with a web and mobile interface.
We ourselves and our partners successfully use the platform to automate a wide variety of business processes in small and large companies (including the scale of the whole country).
Now we want to talk about the Habr community, so that more developers can use the Idea Platform in their projects.
We are planning to write on these topics in our blog:
')
- In this article, we will tell what tools the platform consists of and why it is possible to develop applications for a variety of industries;
- In the following articles we will describe in detail about each of the tools: the history of its appearance and what caused us to create it, technologies and interesting technical solutions for which it works, as well as cases of its successful application;
- Further more: we will describe in detail about the products that have already been created on the basis of our platform and give a link to the SAAS-service, where everyone can try to make their applications on the platform.
If you want us to highlight some other aspects, then write about it in the comments.
So, let's begin!
The platform consists of a set of graphical tools that allow you to cover all aspects of automating a business process. Of course, we understand that sometimes a number of settings are faster and easier to do by writing code, so almost every tool has the ability to program.
Below you will find a brief description of the tools and their wonderful properties!
Extensible Data Model
When you develop a complex system (for example, an asset management system), where you need to create hundreds of different objects with dozens of attributes, it is a long and difficult task: you need to add fields to the database, describe them on the server, then in the client-server interaction, and Finally, on the client, while each time describing the properties of the object in different programming languages.
In the Idea Platform, it will be enough for you to describe the object once, the system itself will do the rest for you!
And this tool has the following properties:
- Creating an unlimited number of entities and fields (without executing DDL commands in the database for tables already containing data);
- The ability to create fields of objects of all basic and composite types (including arrays, single and multiple attachments);
- The ability to create reference fields to other objects with filters of any complexity;
- The ability to create virtual fields (display of related data from other objects);
- Creating hierarchical and functional relationships between objects with the possibility of primary copying and further synchronization of field values;
- Setting up checks for uniqueness, mandatory filling and any others (since you can write a check in Java using a special API to access the system data);
Graphic interface configuration tool (form designer)

After you have added a new object and described its fields, the system automatically creates forms, and you just have to give the form a beautiful look using the form designer. This tool can be used for editing:
- Forms of one record, using all main elements of the graphic interface
- Forms of the list with setting basic analytical functions (multilevel grouping, sorting, filtering)
- Reports and dashboards and filters available to them
At the end of this stage, we already have a basic user interface, it remains only to enrich it with business logic.
Graphic editor of business processes (workflow designer)

Go to the description of business processes. Everything is like in the classics, you need to determine the steps of the process, possible transitions from step to step, those responsible who carry out transitions and notifications by mail and SMS to all those interested. All this can be configured in the workflow designer in the graphical interface, and for complex business processes you can also:
- Describe approvals by one / several users and / or groups of users according to the reconciliation strategy (all agreed / only agreed / majority agreed, etc.);
- Set up rules for calculating the field values ​​of objects based on transition events by steps of the business process and changing object data. Rules can be written in Java using a special API to access system data. Code that can be used in several rules can be written in a special class library (it is loaded dynamically) and simply invoked in the necessary rules;
- Calculate those responsible for the transition between the steps of a business process dynamically based on these objects;
- Schedule deferred events to be executed by a specified timeout;
- To make the layout of notifications to users via e-mail both through a graphic HTML editor, and “manually”.
Dynamic role model
Now is the time to give users the right to view, edit data. To do this, the system sets up roles that define:
- How the user's workplace will look like (menus, dashboards and reports, special forms)
- Access rights to system data (read / create / edit / delete)
In addition, the right to access data can be issued dynamically based on any factors, such as affiliation with the organizational structure and the location of the employee.
Together, this allows you to build a data access model of any complexity that will not require administrative costs.
Integrated analytical and operational reporting

In order for the user to like the system, it is necessary to prepare for him a convenient workplace with a pleasant interface and the necessary data. For each role are configured:
- Operational reports that provide quick access to data and objects that the user needs to solve current problems;
- Analytical reports that contain information from past periods, analytical data processing, identified trends and dependencies that will help the user to make the right decisions.
The reporting system is part of the system interface; the following tools are provided for creating reports:
- Configuring from the graphical interface the following types of graphical and tabular reports: pie chart, bar graph, graph, multiplot, pivot table, table with integrated quick analytics tools;
- Creating dashboards (combination of pre-configured reports);
- Configuring report and dashboard relationships (flushing from report to report with passing parameters);
- Preparing data sources for SQL reports. At the same time, it is possible not to study the database structure, but to use the data model as in the system (for this, views are automatically formed in the database);
- Optimization of the speed of execution of reports (indexing) through the system interface;
- Uploading reports to PDF, PNG, Excel, working without additional settings;
- Ability to customize print forms for uploading reports and system objects to Word and Excel;
- The ability to regularly upload and send reports by mail;
- Customize visual scheduling and resource utilization planning tools (calendars and Gantt charts). We will describe this in more detail in one of the following articles.
Mobile applications (all tablets and smartphones on Android)

Let's start with the most enjoyable. The system interface is adapted for work on tablets, so your users can immediately work on mobile devices without losing functionality.
Under the smartphone, our interface also adapts, but it is obvious that such an interface will be redundant and not so convenient for a small screen. To solve this problem, the system automatically adds mobile interfaces for new system objects to an application for Android smartphones with convenient functionality for viewing reports, creating and editing objects. To run the application you need:
- From the system interface to create convenient reports for mobile devices
- Publish the application on Google Play (for SAAS service users, even this is not necessary)
Full-text search and knowledge base

Users with much greater pleasure and confidence enter data into the system, if they are then easy to find. To do this, the system has a full-text search, which searches for the following data:
- Objects of the system with the ability to specify more weight for the attributes of the system. It is possible to search both all objects at once, and with an indication of specific objects and their attributes;
- By the text document enclosed in the system objects (it is performed both by the name and by the document content).
The system also has a knowledge base where you can put any important information for users, for example, a description of the business process and help on working with the system. The knowledge base is a tree of articles, for writing articles there is a built-in editor, it is more convenient to write than in Habré :) There is also a search on the knowledge base, you can search both in the text of articles and in tags.
Open API (interface) Systems for integration with external systems
In order for the system to integrate without problems into the organization’s current information space, it can:
- Download data from various external sources: web services, structured files, databases, etc.
- Provide access to their data to external systems, give the opportunity to create and edit data through the REST API.
Platform based products
In products based on our platform, in addition to all the listed tools, there are already customized business processes (of course, based on the world's best practices). You can take and use or take as a basis for your own decision. Here they are:
- IP TORO - technology management system for the repair and maintenance of equipment and line equipment (MRO).
- IP Service Manager - IT Service Support Management System (ITSM).
- IP Agile Manager - Scrum development automation.
- SAAS service for human resource management.
In the following articles we will tell you more about the filling of each of the products!
Thanks for attention!