The Kuika Platform enables the rapid and effective development of web and mobile applications with minimal coding requirements and a visual interface. This process includes the following key features:
Application development is carried out using drag-and-drop methods in a web-based design environment.
As a result of development, the platform produces various types of output ready for distribution:
Source code in C#, React, Swift UI, and Kotlin,
Dockerfiles,
Platform-independent build folders,
Mobile application packages with .ipa (iOS) and .apk (Android) extensions.
The Kuika development environment runs on a Workspace dedicated to users. Authorisations can be granted within this workspace according to user roles. These roles are general user roles such as Workspace Owner, Finance Manager, Supervisor, Devops and Member.
In addition, project-specific roles such as Project Owner, Developer, Designer and Viewer can also be defined for each application.
Basic Components of the Platform
Frontend Environment and CI/CD Tools
One of the main components of the Kuika Platform is the Frontend Environment, which runs on a drag-and-drop architecture and is used to execute development processes. This component is used to design and manage user interfaces.
The Kuika platform is connected to CI/CD tools, as shown in the diagram below. CI/CD tools refer to the tools that integrate the outputs produced in Kuika into the distribution processes.
These tools, shown as CI/CD TOOLS in the diagram, manage the distribution of application outputs (source codes, Dockerfiles, etc.) produced by Kuika to the Application Runtime Environment. These processes should be configured according to users' own DevOps policies. The automation of application build and deployment processes is provided through CI/CD tools.
Kuika Application Runtime Environment
This section defines the environment in which applications developed with the Kuika platform actually run and forms the main focus of the topology diagram. This working environment can be set up on technologies such as Kubernetes, Docker or IIS and is supported by both Windows Server and Linux systems.
The runtime environment includes the following main components:
1. Frontend Layer (APP x FRONTEND)
This layer hosts the user interfaces (UI) of the developed applications:
Both resolution-sensitive (Responsive) web applications and local (Native) iOS and Android applications can be developed.
The web frontend is typically built with React, while the mobile frontend is built with Kotlin for Native Android applications and Swift UI for Native iOS applications.
The frontend layer communicates with the backend layer. This communication is typically achieved through customised APIs built using the Backend for Frontend (BFF) architecture, ensuring a secure and controlled connection.
In cases where there are multiple frontend applications, the Micro Frontend approach can be used. In this approach, CORS (Cross-Origin Resource Sharing) configurations are of great importance.
2. Backend Layer (APP x BACKEND)
This layer manages the business logic and data access of applications:
The backend layer is developed using .NET Core technology. In addition, Python is used for artificial intelligence services.
Thanks to the RESTful API creation capability, which is one of the basic features of the platform, data exchange with both frontend applications and other external systems is easily achieved.
The backend layer communicates directly with the database server (DB SERVER) and workflow engine (Workflow Engine).
3. Database Server (DB SERVER)
This layer performs the main data storage function for the developed applications:
As indicated in the diagram, the Kuika platform supports different database types such as MSSQL, Oracle, and PostgreSQL.
For applications developed with Kuika to run smoothly, MSSQL Server 2019 and above or Oracle Version 19 and abovedatabase versions must be used on the servers where the applications are served.
User roles and permissions are typically managed on the MSSQL database.
Connection information and authorisation are required to access the database.
Example connection notation:
Server=<ip>,<port>; Database=<DBName>; User Id=<Username>; Password=<Password>;
4. Workflow Engine
This component is used for the automation and management of business processes in applications:
Supports BPMN 2.0 notation.
It is an integrated workflow engine running on .NET Core.
The workflow engine has its own database server (Workflow DB SERVER) and uses MSSQL database.
This engine provides centralised workflow management for various web and mobile applications.
Inter-Component Interactions
The Kuika platform architecture includes optimised interaction structures to ensure high-performance and secure operation between the components provided. Each component works in an integrated manner to support the overall operation of the system. These interactions can be detailed as follows:
Frontend applications exchange data by calling APIs belonging to the Backend layer. This communication is typically managed through the Backend for Frontend (BFF) layer.
Backend applications interact directly with the Database Server (DB SERVER) to execute business logic and perform data processing.
For some special business processes or automation tasks, Backend applications can also communicate with a Workflow Engine. The Workflow Engine accesses its own dedicated database server (Workflow DB SERVER).
Mobile applications communicate directly with Mobile Backend services that are specifically configured for them.
The runtime environment is configured on web servers or container platforms such as IIS, Nginx or Kubernetes.
The necessary network configurations must be made on the servers to enable access to the applications:
HTTP (80) and HTTPS (443) ports must be opened,
Domain names, subdomains, and SSL certificates must be configured correctly.
If there is more than one frontend application or resource sharing between different domain names, CORS (Cross-Origin Resource Sharing) settings must be configured. These settings:
On an IIS server, through the web.config file,
On an Nginx server, through the nginx.conf file.
Compression methods such as gzip and brotli should be used to improve the performance of web applications. These methods can significantly improve user experience and application loading speeds.