# Fundamentals

Whether you’re just starting with prototypes or scaling to enterprise-level apps, QuantumByte helps you solve real world problems through creating apps with simple prompts and guided tools.

## Our Solutions

In QuantumByte we believe that building an app should be inclusive to everyone. QuantumByte marries AI-driven generation with no-code customization, so the platform allows you to get a fully functional, business-ready app in hours, tailored to your domain expertise and goals.

<figure><img src="/files/VXUS13xkM0bEJiFy1STu" alt=""><figcaption></figcaption></figure>

Before we dive in, it is important to understand the **basic concept of QuantumByte** so that you can leverage the benefit of using our platform.

1. **Write a structured prompt in natural language**. Creating an app has never been easier, simply describe your idea, who it’s for, and what problem it solves.
2. **Our platform generates the foundation of your app**, including the frontend, backend, roadmap, data schema, CMS, and dashboard.
3. **Refine your app through guided tools with natural language editing.** Customization only requires you to describe how you want your app to look and function and QuantumByte will translate it into a full functioning app with its structure, design, and logic.
4. **Brainstorm business concepts and strategies** with features like Impact and Goals in QuantumByte. In our platform, you don’t only build an app, you will also explore how your app will work, who it will serve, and how it can grow sustainably.

At its core, QuantumByte is an AI-powered no-code app builder. This means you can build complete applications without writing traditional code. Instead, you guide the system with prompts.

Prompting in natural language is not only for the initial app creation, it also applies to generating new features and designing the user interface (UI) in **Project**. Prompts serve as the highest level of customization, allowing you to shape your app intuitively.

For users who want more control, QuantumByte also supports further customization across different layers. You can move from high-level prompting, down to editing features and data models, and finally to the **Code Editor** for precise, low-level changes when needed. This layered approach gives flexibility: start simple with prompts, and go deeper only when necessary.


# Get Started

Start building your app with natural-language Prompt

## Prompt

You can start building your app by entering a prompt in either of the following ways:

* **From the Landing Page:** Enter your app idea in the prompt field and click "Build my AI — free". If you need inspiration, browse the **Some Inspirations** section and select an example prompt to populate the input field

![](/files/ee3GKqIKaUSF2Xp6uIHX)

* **From the Dashboard:** After signing in, user redirected section on the Dashboard and enter your prompt. You can also click **Random Ideas** to generate a sample prompt and use it as a starting point.

![](/files/nv0dkt2JnxMNQJrDPEYq)

Both entry points use the same app generation workflow. After you enter a natural-language prompt and submit it, the system will direct user to chat with QuantumByte **AI Agent**.

## Deep Dive into Your Idea

{% hint style="success" %}
Available in v3.1.1
{% endhint %}

The Agent guides you during the initial setup to ensure your application is built to your exact needs. It can be accessed through either a **speaking** or **chatting** interface. Its primary role is to engage in a conversational interview, collecting detailed information and clarifying your requirements to create a highly accurate and comprehensive specification. Once this interactive process is complete, the Deepdive Agent seamlessly sends the finalized specification to the platform to begin the app generation process.

<figure><img src="/files/Y1oUUOw9q2luVytQO62o" alt="" width="375"><figcaption></figcaption></figure>

Once the app generated, you will begin your app editing on **Canvas**, a visual framework that captures the essence of the product concept.


# Canvas

Once your submit your prompt, the system will directs you to Canvas where you can see the high-level concept of your app.

{% hint style="success" %}
Updated in v3.2.0
{% endhint %}

## Concept

Canvas is the structured blueprint that QuantumByte generates from the user’s idea. It captures the core of the product concept. Unlike a blank document or slide deck, the Canvas is auto-generated and organizes the user’s thoughts into sections.

<figure><img src="/files/pkGGl0uUdF54AMu0MclY" alt=""><figcaption></figcaption></figure>

The key sections in Canvas act as a guided tools. It sections designed to help you brainstorm about your product, from concept to impact.

| Sections                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Cover**               | Cover displays the title, tagline, and app preview of the app created from prompt. The title and tagline in the cover is customizable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| **Foundation**          | <p>This section highlights three points: <strong>Problem Statement</strong>, <strong>Strategic Direction</strong>, and <strong>Core Value Proposition</strong>.</p><ul><li><strong>Problem Statement</strong> states why the product needs to exist and which specific issues or inefficiencies it addresses. Identifying these early gives the rest of the Canvas a clear purpose and direction.</li><li><strong>Strategic Direction</strong> is the foundational plan that defines <em>what</em> a product aims to achieve in the long term and <em>why</em> it matters. This direction acts as a guiding framework, ensuring that every decision coherently contributes to the overarching business goals.</li><li><strong>Core Value Proposition</strong> is statement that explains the fundamental benefit your product provides to a specific user.</li></ul> |
| **Impact**              | **Impact** page includes all personas aimed by the products and how the product will be used by the personas.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **Product** **Roadmap** | The **Product Roadmap** is the central hub where your application's development plan is generated and managed. It breaks down the build process into specific tasks, which are categorized as either **AI Task** (handled automatically by the platform) or **User Task** (requiring action from human developers). You can prioritize the order of these tasks, track the overall progress of your app, and from this page, access advanced tools like Pro Build, the Advanced Editor, or the Code Editor to move forward.                                                                                                                                                                                                                                                                                                                                          |
| **Chat Agent**          | The Chat Agent allows you to modify your application using natural language, simply by typing instructions to an AI Developer. You can specify which part of the app you want to change, ensuring targeted updates. For specialized guidance, you can interact with one of four distinct AI personas: the **Visionary**, the **Designer**, the **Consultant**, or the **Engineer**. For a detailed guide on using this feature, please refer to the full **Chat Agent** documentation.                                                                                                                                                                                                                                                                                                                                                                               |

## Editing and Ripple Effect

Canvas allows users to **modify any component of their generated concepts**, from any concept  starting with **Cover**, **Foundation**, **Impact**, and **Product Roadmap**. Each edit is not only a change in description but also a functional update that affects how the application behaves.

Because Canvas's **Concept** serves as the conceptual foundation of the app, every edit directly influences its logic, structure, and interactions. For instance, if a user changes a goal or adds a new process in the Canvas, the system will adapt the app’s corresponding modules, pages, or services to match that intent. This makes the Canvas a true source of control, where conceptual updates translate into operational outcomes.


# Editing, Ripple Effect, and Planner

{% hint style="success" %}
Available in v3.1.1
{% endhint %}

### Canvas Edit

Canvas Edit allows users to **modify any component of their generated Canvas**, such as challenges, goals, features, and product overview. Each edit is not only a change in description but also a functional update that affects how the application behaves.

Because the Canvas serves as the conceptual foundation of the app, every edit directly influences its logic, structure, and interactions. For instance, if a user changes a goal or adds a new process in the Canvas, the system will adapt the app’s corresponding modules, pages, or services to match that intent. This makes the Canvas a true source of control, where conceptual updates translate into operational outcomes.

### Ripple Effect

The **Ripple Effect** is the **automated process that evaluates the impact of each edit** across the entire project. When a user modifies something on the **Canvas**, the system analyzes how that change affects interconnected components such as the Roadmap, pages, data models, and service APIs.

This analysis ensures that all parts of the project stay in sync. For example, adjusting a data-related element on the Canvas could prompt the system to revise the Data Editor schema or update dependencies in the backend service. By managing these relationships automatically, the **Ripple Effect prevents inconsistencies** and ensures the app continues to function in alignment with the updated concept.

### Planner

The Planner acts as the **coordination and approval layer after the system** performs the ripple analysis. It compiles a summary of all detected changes, showing how updates to the Canvas will affect other parts of the app. Users can then review and approve the suggested modifications before they are applied.

Once approved, the Planner executes the necessary updates across the system, refreshing the Roadmap, regenerating relevant app modules, and ensuring that the live app remains coherent with the latest version of the Canvas. This process ensures that both the conceptual and operational layers of the product evolve together, allowing users to manage complex projects without breaking functionality or alignment.


# Roadmap

{% hint style="success" %}
Available in v3.1.0
{% endhint %}

The Roadmap provides a **visual timeline** of the steps needed to transform an idea into a working product. Once the Canvas is generated, the Roadmap automatically organizes actions in stages, allowing users to see how each task connects to broader objectives. Each milestone represents a meaningful phase of development, such as core platform setup, system integration, and contains a series of tasks labeled either as **AI Tasks** (handled automatically by the system) or **User Tasks** (requiring user input or **Human Developer**).

<figure><img src="/files/jJRkZewpnXKeCYOVhAWt" alt=""><figcaption></figcaption></figure>

Every task requires an explicit action to move forward. For **AI Tasks**, users can initiate generation from the Roadmap; the system then executes the step and returns the result. For **User Tasks**, users can provide the required input or hand the item to a **Human Developer** when specialist work is needed. This keeps ownership clear and ensures that progress reflects deliberate decisions.

The Roadmap provides clear visibility into project status by displaying progress bars, completion percentages, and real-time indicators such as **In Progress**, **Blocked**, or **Backlog**. This allows users to track advancement at both the milestone and task level. Dependencies and exit criteria are clearly defined, helping users understand what must be completed before moving to the next phase. The Roadmap helps users maintain focus and accountability.


# Studio

The Studio is the main workspace where users shape, refine, conceptualize, and visualize their products.

After the platform generate your prompt into Apps, you will get directed to the Studio where you can describe what you want to build in natural language, and the system interprets these descriptions to generate an interactive Canvas that outlines the product’s logic, structure, and direction.

<figure><img src="/files/Dk4jmb69yyWLR35UdQHM" alt=""><figcaption></figcaption></figure>

Within the Studio, users can describe what they want to build in natural language, and the system interprets these descriptions to generate an interactive canvas that outlines the product’s logic, structure, and direction. Users who may not have a background in programming or system design can still articulate their goals and see them transformed into functional prototypes. It supports an iterative process where every adjustment, whether in text, structure, or design, is reflected across the entire system to maintain coherence.


# App Preview

The App Preview provides a live simulation of the generated application within a mobile-like environment. It allows users to see how their web app appears and behaves on a device, interact with screens and navigation flows, and observe how each component connects as the concept evolves.

<figure><img src="/files/WKjDAGieWfP5Zwdgjocf" alt="" width="375"><figcaption></figcaption></figure>

As the Canvas is refined and work progresses in the Roadmap, users can regenerate the preview to reflect the most recent state of the product. This feature helps validate design choices, confirm expected functionality, and identify adjustments needed before moving toward production.


# Page Editor

{% hint style="info" %}
Coming soon in v3.1.1
{% endhint %}

The Page Editor gives users **hands-on control** over how their application looks and behaves. It provides a clear, editable view of each page’s layout, structure, and interface elements, allowing users to make precise adjustments by description, without directly writing code. Changes such as rearranging sections, modifying text, or updating button actions can all be performed using plain, natural language commands.

<figure><img src="/files/cBFaOUC7jLdLXS4IKm6O" alt=""><figcaption></figcaption></figure>

Every edit made through the Page Editor is automatically translated into real code behind the scenes. The system maintains a one-to-one synchronization between what users describe and the underlying source code that defines the page. This ensures that the design layer and the technical layer are always aligned, reducing the risk of visual or functional inconsistencies.

The Page Editor is especially valuable for refining the user experience after the initial generation. For example, users can adjust layout spacing, rename labels, or update user interactions by simply describing, and the platform will instantly regenerate the corresponding code. By maintaining this direct connection between intent and implementation, the Page Editor enables rapid iteration, accurate previews, and reliable updates, all without requiring manual coding effort.


# Data Editor

{% hint style="success" %}
Available in v3.1.1
{% endhint %}

The **Data Editor** enables users to design, view, and modify the data structure of their application in a simple, intuitive way. Instead of working directly with database schemas, users can describe their desired data model using natural language. The system interprets these descriptions to create or update entities, fields, relationships, and tables that define how information is stored and connected within the app.

Every change made in the Data Editor is reflected immediately in the underlying code, maintaining **one-to-one synchronization** between human-readable descriptions and the actual data definitions used by the system. This synchronization ensures that data models remain accurate, consistent, and aligned with the overall logic of the application.

For example, users can easily create a new entity such as “Customer,” specify its attributes (name, email, purchase history), and define relationships to other entities like “Orders” or “Products.” The system then generates the appropriate backend structures automatically.

By combining clarity and automation, the Data Editor gives both technical and non-technical users a complete understanding of how their app’s data operates, while removing the complexity of manual database management or code editing.


# Service (API) Editor

{% hint style="info" %}
Coming soon in v3.1.1
{% endhint %}

The **Service (API) Editor** allows users to create and manage the backend services that power their applications. Through natural language, users can describe or modify how data should be processed, retrieved, or connected between different parts of the app. The system interprets these inputs and automatically generates the corresponding service code.

Every description and code snippet remain synchronized, ensuring that what users define conceptually always matches the actual backend implementation. This feature helps maintain clarity and consistency across the system, making it easier to update logic, link data models, or adjust workflows as the application evolves. It bridges the gap between idea and execution, allowing users to design functional APIs without needing to write code manually.


# Projects Page

All of your prompted app projects are displayed here

Projects Page is a page containing all the projects you are working on, making it easy to view and access them at any time.

<div data-full-width="false"><figure><img src="/files/3c9nQ7blybeEOEpnLRuY" alt=""><figcaption><p>QuantumByte Project Dashboard</p></figcaption></figure></div>

#### Create App from Dashboard

If you want to create another project after creating the first one, simply **go to the Projects Page**, then at the right corner, click the “**Build Your App**” button, and you’ll be directed to the prompt-based app builder to get started.

#### Dashboard Feature

Beyond just listing projects, the Dashboard giving you a unified environment to manage applications, collaborators, and configurations.

<table><thead><tr><th width="251">Feature</th><th>Descriptions</th></tr></thead><tbody><tr><td><strong>App Starters</strong></td><td>Quickly launch new applications from a structured prompt.</td></tr><tr><td><strong>Application List</strong></td><td>Host and manage multiple apps, each with its own frontend and backend.</td></tr><tr><td><strong>Collaborators and Roles</strong></td><td>Invite team members and assign roles (Admin, Builder, Operator, Viewer) to set responsibilities and access level</td></tr><tr><td><strong>Environments</strong></td><td>Work across two environments, Preview (for fast testing) and Deployed (for stable releases).</td></tr><tr><td><strong>Domains</strong></td><td>Use a default QB subdomain or connect your own custom domain with SSL.</td></tr><tr><td><strong>Project Settings</strong></td><td>Manage shared assets, integrations, and environment variables across all apps in the Workspace.</td></tr></tbody></table>


# Development Service

The Development Service provides the execution layer that turns the Roadmap from the Studio into a working product. It combines automated AI-driven development with the option to engage professional human teams when deeper customization or precision is required. Together, these services ensure that every idea generated in the Studio can progress from concept to deployment efficiently and reliably.


# AI Dev Agent

{% hint style="success" %}
Available in v3.1.0
{% endhint %}

The AI Dev Agent is an automated development assistant that executes the steps defined in the Roadmap. It can generate, edit, and deploy code based on the planned milestones created in the Roadmap. By interpreting the structure and logic of the Canvas, the AI Dev Agent ensures that each technical implementation aligns with the user’s goals and business logic.

This agent operates continuously in the background, managing dependencies, validating outputs, and ensuring that the system remains coherent as updates occur. Users can monitor progress or make adjustments directly within the platform without having to handle code manually. The AI Dev Agent significantly reduces development time and allows users to iterate faster from concept to functional product.


# Human Developer Service

{% hint style="info" %}
Coming soon in v3.1.1
{% endhint %}

The **Human Developer Service** provides an option for users who require expert intervention for complex or high-precision projects. Through this service, **QuantumByte** connects users with professional developers, designers, and product managers who can help refine, enhance, or scale their applications.

Before work begins, the platform estimates the scope of effort in **Story Points (SP)**, giving users a clear understanding of cost and delivery expectations. The assigned team then implements tailored solutions that align closely with the user’s Roadmap and existing Canvas.

This service complements the AI Dev Agent by handling intricate customizations, integrations, or creative design tasks that require human expertise. It ensures that even advanced technical requirements can be addressed within the same unified ecosystem, bridging the gap between automated generation and production-ready development.


# Usage and Cost Orchestrator

{% hint style="success" %}
Available in v3.1.0
{% endhint %}

The Usage and Cost Orchestrator gives users clear oversight of resource consumption and spending. It covers real-time usage visibility, predictable credit deductions, convenient top-ups, and internal cost controls that keep pricing stable over time.


# Usage Tracker

The **Usage Tracker** records all resource consumption within the platform. It includes AI token usage, server workload, network requests, and storage utilization. Users can review granular summaries to see where credits are being spent and identify opportunities to optimize. Reporting focuses on clarity, so teams can track trends, spot unusual spikes, and adjust behavior before costs increase.


# Auto-Credit Deduction and Usage Limiter

The Auto-Credit Deduction feature applies charges automatically whenever an action consumes credits. The Usage Limiter enforces balance-aware limits to prevent accidental overuse. Together, they keep spending predictable by aligning consumption with available credits and by stopping executions once limits are reached. Users retain control through clear notices and up-to-date balances.


# Credit Top-Up and Billing System

The **Billing System** enables fast, reliable credit top-ups using supported payment methods such as e-wallets, cards, bank transfers, and QRIS. A wallet view shows current balance, recent transactions, and detailed charge records. This makes it straightforward to reconcile spending, plan future usage, and keep projects running without interruption.


# System Source of Truth

The System Source of Truth serves as the unified repository that holds all essential elements of each user’s application, including source code, domain data, and digital assets. It ensures that every change is stored, versioned, and traceable.


# Code Storage

{% hint style="success" %}
Available in v3.1.0
{% endhint %}

The Code Storage feature securely stores all generated source code within a centralized environment. Each update is automatically versioned, enabling users to access historical revisions or restore previous states when necessary. This system preserves development history and ensures that the application’s codebase remains both secure and auditable throughout its lifecycle.


# Code Editing (Repository Viewer)

{% hint style="info" %}
Coming soon in v3.1.1
{% endhint %}

The **Code Editing (Repository Viewer)** introduces a built-in interface for viewing and modifying stored code directly inside the platform. Users can browse, review, and make minor adjustments to files without needing external development tools. This allows quick edits, code inspection, and version comparison, making it easier to maintain consistency between AI-generated content and manual refinements.


# Domain Data Storage

{% hint style="info" %}
Coming soon in v3.1.1
{% endhint %}

The **Domain Data Storage** manages the structured data elements that define how an application operates. It stores entities, attributes, and relationships that form the logical foundation of the system. By keeping all data definitions synchronized with the active version of the application, this feature ensures that the backend logic remains aligned with what users see and configure in the Canvas and Data Editor.


# Domain Data Editing (Repository Viewer)

{% hint style="info" %}
Coming soon in v3.1.1
{% endhint %}

The **Domain Data Editing (Repository Viewer)** provides a visual interface for modifying stored domain data. Users can view relationships between entities, adjust attributes, and edit constraints without writing database commands. Every change is synchronized in real time with the backend, allowing smooth coordination between conceptual models and actual data implementation.


# Asset Storage

The **Asset Storage** acts as a centralized library for all visual and brand-related materials, such as images, icons, logos, and other design assets. It ensures that every component is properly cataloged and linked to the correct version of the application. Centralization prevents duplication and simplifies the process of managing brand consistency across different parts of the product.


# Asset Editing (Repository Viewer)

The **Asset Editing (Repository Viewer)** allows users to access, preview, and update stored assets directly within the system. Users can replace images, upload new versions, or reorganize visual elements without disrupting the live application. Each change remains synchronized with the deployed version, ensuring that updates to branding or interface visuals are accurately reflected across the platform.


# Delivery and Runtime

The **Delivery and Runtime** layer provides the environment where applications are built, tested, and executed. It connects outputs from the Studio, Editors, and Development Services into a continuous workflow from concept to running software. The goal is to remove local setup friction, keep execution predictable, and provide fast feedback during iteration.


# Development Environment

{% hint style="success" %}
Available in v3.1.0
{% endhint %}

The **Development Environment** is a fully managed, cloud-based space for running and previewing applications. Users do not need to install SDKs, package managers, or build tools locally. The platform compiles and executes generated code automatically, then serves a live preview for quick validation.


# Module & Template Registry

The **Module & Template Registry** acts as the centralized directory for all reusable components that can be instantiated within a generated product. It ensures consistency, version control, and interoperability across products. Through this registry, all products can reuse core logic, UI patterns, and service integrations without redundancy.


# Service APIs

Service APIs provide access to predefined services that can be called from generated products within QuantumByte. Each API represents a functional service, allowing users to connect their applications with these ready-to-use capabilities. By calling these APIs, users can integrate specific functions or data flows into their products without having to build them manually. The Service APIs are maintained within the QuantumByte ecosystem to ensure consistent behavior, versioning, and compatibility across different generated environments. This approach helps products share the same service logic while remaining flexible in how each service is used or displayed within the app.


# Modules

Modules are the fundamental building blocks of any generated product on QuantumByte. Each module encapsulates a specific functional capability, such as authentication, payment, data management, or AI interaction, that can be plugged into a product during generation. These modules allow the AI to assemble complex applications quickly from pre-tested, interoperable components rather than writing code from scratch.

By maintaining these reusable components in a centralized registry, QuantumByte enables faster iteration, cleaner architecture, and consistent quality across all generated applications. Core examples include the **Authentication Module** for managing user login, registration, and access control; the **Form & Data Module** for handling form creation, submission, and backend storage; the **Payment Module** for processing gateway integrations and transactions; and the **Gated Content Module** for restricting content access according to user roles or subscription tiers.


# Microphone Setup


# Package

Whether you’re just starting with prototypes or scaling to enterprise-level apps, QuantumByte helps you solve real world problems through creating apps with simple prompts and guided tools.

## Prototype

This plan is best for individuals or small teams who want to try things out and quickly test ideas. With this monthly plan, you get the privilege of 1 Project Created, 150 **Credits** to generate your app, and prototyping access for your app.

Prototype plan does not come with the privilege to publish your app, if you wish to see your app live in Website, Android, or iOS, consider scaling up your plan to QuantumByte Pro.

## QuantumByte Pro

This plan is ideal for businesses or developers who are ready to scale. This plan gives you the ability to create how many projects you want to create, choose the storage size you need for your projects, and customize how many **Credits** you want to generate features.

Here you can take your app live and publish it across Website, Android, and iOS. With QuantumByte Pro, you can also unlock more advanced features and greater flexibility to meet your business needs.

## Enterprises

This plan is ideal for large-scale teams and organizations that require advanced capabilities, scalability, and dedicated support. This plan shall be tailored to your organization’s needs, from infrastructure to custom features. You can contact us to discuss a solution that works best for you.


# Getting Started

Our builder empowers you to create web and mobile experiences effortlessly through an intuitive drag-and-drop widget system—no coding required

## Concept

<figure><img src="/files/1GlLY7h9frw5eLKXSRAj" alt="" width="563"><figcaption></figcaption></figure>

The concept of QuantumByte is a SuperApp, consisting of a **Main App** and multiple **Mini Apps**, developed or integrated using the available features within the QuantumByte Platform.

Each Mini App Developer will receive an account on the QuantumByte Platform, allowing them to either create new services or integrate existing ones into the Main App (Web Portal & Mobile Portal).

The QuantumByte ecosystem enables developers to build services directly within the Main App portal. This approach ensures that only one unified application appears to the public while offering multiple services developed independently by different developers—reducing the need for many separate public apps.

<div data-full-width="false"><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/New%20Project%20(2).png" alt="" width="563"><figcaption></figcaption></figure> <figure><img src="/files/YIf6pPJenXl0G5gdHZ4f" alt="" width="563"><figcaption><p>Mobile App Created with QuantumByte</p></figcaption></figure></div>

## Main Features

<figure><img src="/files/d1qNluF0PXiyfo4pneFh" alt=""><figcaption></figcaption></figure>

The INA Digital Platform uses our framework and offers several types of development tools that make it easier to integrate new applications or existing ones, as follows:

**Builder (Frontend)**\
This feature is used to create native services within the Mobile App and National Web Portal, as well as dashboard pages for managing services from the back-office side. It uses a drag-and-drop interface with standardized components.

**Package (Frontend)**\
This package/plugin feature is used to build native services within the Mobile App and National Web Portal using code templates. In this method, you create a plugin that will be merged into the Main App’s source code and compiled together.

**Microsite (Frontend)**\
This feature is used to create webview-based services within the Mobile App and National Web Portal using code templates, UI Kit components, and SDK libraries provided as service standards.

**Microservice (Backend)**\
This feature allows you to build backend services using available framework templates. It’s useful for developers who don’t yet have infrastructure or who want to leverage the stability of backend services running on the framework’s server cluster.

**Storage (Backend)**\
This feature is used to store document files within the framework. It can be utilized by those who don’t yet have infrastructure or who want to leverage the stability of the framework’s storage cluster.

**Database (Backend)**\
This feature allows you to create a database on the server for storing data within the framework.

**API Management**\
This feature enables data sharing via APIs through the framework.

***

## Frontend Service

These are recommendations for choosing the appropriate type of frontend, along with their advantages and disadvantages. You may use two different frontend types for the Main App Portal: one for the Mobile version and another for the Web version.

| Frontend Service | Description                                                                 | Advantages                                                                                                                                                                                                                                                                                                                                            | Disadvantages                                                                                                                                                                                                                              |
| ---------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Builder          | Suitable for services with simple, form-based UI/UX.                        | <p>Good performance (native) except when using webview widgets.<br><br></p><p>Allows you to quickly build services using drag-and-drop widgets.<br><br></p><p>Automatically generates both Mobile App and Web App frontends.<br><br></p><p>No need to update the Main App when changes are made.</p><p><br></p>                                       | <p>Limited widget options.<br><br></p><p>UI/UX customization is restricted and may not fit specific design needs.<br><br></p><p>Cannot install external dependencies.<br><br></p><p>Typically used for form-based services.</p><p><br></p> |
| Package          | Suitable for services with complex UI/UX and high performance requirements. | <p>Services can be developed using fully native code (Base Plugin).<br><br></p><p>UI/UX can be fully customized to match specific design or functional needs.<br><br></p><p>Delivers high native performance.<br><br></p><p>Allows installation of external dependencies.</p><p><br></p>                                                              | <p>Requires an app update whenever changes are made.<br><br></p><p>The Mobile App and Web App packages are separate, meaning developers must build each one individually.</p><p><br></p>                                                   |
| Microsite        | Suitable for services with complex UI/UX requirements.                      | <p>Services can be developed using full web-based code.<br><br></p><p>No need to update the Main App when changes are made.<br><br></p><p>UI/UX can be fully customized according to needs.<br><br></p><p>Automatically generates both Mobile App and Web App frontends.<br><br></p><p>Supports installation of external dependencies.</p><p><br></p> | <p>Lower performance compared to native solutions (runs via WebView).<br><br></p><p><br></p>                                                                                                                                               |


# Builder Guide


# Frontend


# Frontend Services Types

### Builder

The term **“builder”** refers to a service development system that uses a drag-and-drop widget feature. This feature allows users to instantly convert their designs into mobile and web frontends, which can also be directly integrated with existing systems.

<figure><img src="/files/I4FZn3Y7jrdDggVaW1I0" alt=""><figcaption></figcaption></figure>

One of the most important components within the builder is the **Form Builder**. In simple terms, when you create a form using the Builder, you’re essentially structuring a database — including its fields, data types, validations, and supporting components such as **“Submission”** and **“Payment”** modules — all within a no-code platform.

Every piece of data submitted through a form is automatically stored in a generated database. The data within that database can be accessed via an automatically generated API. Besides retrieving data through APIs, users can also manage the stored data directly within the platform using the **Backoffice Builder** feature.

#### Frontend Builder

A feature that allows users to create the **frontend portal** of a service using an easy **drag-and-drop widget** system.

#### Backoffice Builder

A feature designed to build the **backoffice or admin page** of an application, also using the available **drag-and-drop widgets**.

#### API Integration

A feature that enables users to **connect and integrate data** previously created using the builder.

***

### Package

Fitur package/plugin dapat di manfaatkan oleh developer untuk membangun layanan menggunakan native code (Plugin) secara langsung dan menggabungkan nya dengan source code mainApp serta langsung mempublikasikan nya ke portal nasional.

<figure><img src="/files/qCDFLSfspcqQTGSSouse" alt=""><figcaption><p><em>Package Mobile Flow</em></p></figcaption></figure>

The **package/plugin feature** allows developers to build services using **native code (Plugins)** and integrate them directly with the **main app’s source code**. Once integrated, the combined application can be published directly to the national portal.

In QuantumByte’s **package development workflow**, developers begin by duplicating a **code template or example project** into their own repository for local development. When the code is compiled through the platform, the system automatically **synchronizes the developer’s repository** with the platform.

During the **compilation process**, the system merges the **miniapp package** with the **main app’s source code**, which involves routing setup, dependency overrides, and compilation. If no errors or conflicts occur, the developer can **download a preview version** of the app in **APK format**.

Currently, the miniapp package can be successfully merged with the main app. However, before it can be officially published to the **Play Store** or **App Store**, it must first go through an **approval and verification process** by the **QuantumByte admin team** for merging and pushing to the main repository.

***

### Microsite

The **microsite feature** allows developers to build services by writing code directly, deploy them on the framework’s server cluster, and publish them instantly to the national portal.

<figure><img src="/files/Gjel9V1wOgyEae6zQmTK" alt=""><figcaption><p><em>Microsite Workflow</em></p></figcaption></figure>

The process of creating a microsite is quite similar to developing a package. Developers start by duplicating the code template into their own repository for local development. When deploying to the QuantumByte Kubernetes cluster, the process follows these steps:

1. Synchronize the microsite source code
2. Build the Docker image
3. Push the image to the Docker registry
4. Deploy to the Kubernetes cluster
5. Set up the subdomain
6. Enable internet access

After deployment, developers can set the microsite as the default frontend for their service. Once approved by the QuantumByte admin, the microsite becomes accessible through the national portal.

#### Code Template

Several code templates are available, including:

* **Vue3** (Nuxt Framework)
* **ReactJS** (Next Framework)
* **PHP** (Laravel Framework)
* **Other** (Custom)

Each provided code template includes the following components:

* **UI Kit**\
  A set of UI components used to build microsite pages, serving as a standardized design system for services that use Tailwind and custom KonstaUI styling.
* **SDK Library**
  * **SDK Libs:** A library that provides tools or shortcuts for accessing service functionalities such as retrieving user details, managing shipping addresses, handling transactions, and accessing location data in both development and production modes.
  * **SDK MainApp:** A library that facilitates communication with the MainApp, enabling functions like navigation control, opening main app pages, or triggering modals.

***

### Microservice

Fitur microservice dapat digunakan untuk membuat backend service di framework dengan code template yang tersedia serta men-deploy nya di server cluster framework untuk dapat di akses melalui API

<figure><img src="/files/fKYvulWtkkBq1rhu6VAm" alt=""><figcaption></figcaption></figure>

Secara alur pembuatan microservice, caranya tidak jauh berbeda dengan develop microsite, yang membedakan output berupa Rest-API dan tidak dapat di setel sebagai default frontend layanan.

#### Code Template

Terdapat beberapa code template yaitu :

* **Python (Flask)**
* **Golang (Fiber)**
* **Typescript (NestJs)**
* **Other (Custom)**

***

### Storage

The **Storage feature** allows developers to upload document files within the framework, up to a specified capacity, and manage them through an API.

<figure><img src="/files/kxPBE9Wip6Q2akyOe036" alt=""><figcaption></figcaption></figure>

In practice, a developer can create or add storage and define the required capacity. The system then uses QuantumByte’s storage servers to store the uploaded files.

The platform automatically generates a **REST API** that developers can use to upload and manage document files. An **API Key** and **Secret Key** are also automatically created to provide secure access to the API.

{% hint style="info" %}
**Why not store files directly in Microservices or Microsites?**\
Microservices and Microsites are **stateless**, meaning any files or data stored within them will be deleted when the service is restarted or redeployed.
{% endhint %}

***

### **Database**

The **database feature** is used to store data and can be accessed by microservices or other services as a place to manage structured information.

<figure><img src="/files/7gKLqU9epCJ7QgbmajyO" alt=""><figcaption></figcaption></figure>

To create a database on the QuantumByte server, developers can start by selecting one of the available database templates, such as **PostgreSQL**, **MySQL**, or **MongoDB**. They can then configure the environment settings as needed, including the user, password, and other parameters.

Once the setup is complete, the platform automatically deploys the database service to the QuantumByte server and creates the necessary storage for it. After deployment, developers can directly access and use the database.

***

### API Management

API Management serves as a tool for exchanging data between developers through a shared framework.

<figure><img src="/files/A6YT4rY7ASVNKhDDq6DX" alt=""><figcaption></figcaption></figure>

With this feature, you can use APIs created by other developers (if access is granted) and also publish your own APIs directly through the platform, allowing other developers to integrate with your services easily.


# Create Service

Follow this guide to create Frontend Service

### First Steps

Before getting started, make sure you have developer access to the framework.

Once you’ve logged in, you’ll see a screen similar to the figure below.

<figure><img src="/files/a4SU98J1ZEWox3NFswb7" alt=""><figcaption></figcaption></figure>

***

### Create New Service

1. Click **Create Service** button.
2. Enter the title of the Service, description, and Service Category.

<details>

<summary>Service Category Guide</summary>

* **Service** : Choose this option if the feature involves user interaction, such as data input or other interactive processes.
* **Information:**  Select this if the feature only displays information, such as news or announcements.
* **Mapview:** Use this option for map-based features.
* **Webview:** Choose this if the feature needs to display a specific web link within the app.

</details>

At this stage, you’ve successfully created a new service. In the next step, you can start adding widgets or components to the **Frontend Builder**.


# Create Form Service

Create Form service with frontend, backend, and API Integration.

In this tutorial, we'll guide you through creating a form service, from building an engaging frontend to setting up an efficient backend and connecting it with an API.

### Developer Page

Follow these steps to configure the line chart:

\
Click the gear icon on the line chart widget.

<figure><img src="/files/wL4G43OeIZhWlOSlpn8D" alt=""><figcaption></figcaption></figure>

***

### Frontend

### Create Service

1. Click the **Create Service** button.
2. Enter the service title, description, and category as shown in the example below.

   <figure><img src="/files/0ubAYqtflQSLcOiVmpVZ" alt=""><figcaption></figcaption></figure>

***

### Adding a Page

1. To add a new page, click **Add Page** in the bottom-right corner.
2. Enter a title for the page — in this case, we’ll use **“Form”** as the title.

   <figure><img src="/files/QLo6ciWTyzTI7lZ9bDMU" alt=""><figcaption></figcaption></figure>
3. Select **Blank Page**.
4. The new page will appear on the right side of the page list.

   <figure><img src="/files/izGAyLHsQLsj4tS5PxON" alt=""><figcaption></figcaption></figure>
5. Click **Save** on the Developer Page to store all configurations.

***

### Widget Configuration

To make your app’s interface more engaging, you can use various widgets. In this tutorial, we will use the **Text widget** for service titles and descriptions, and the **ListView widget** to create menus within the service.

#### Steps to add widgets

1. Drag and drop the Text widget and ListView widget onto the main page.

   <figure><img src="/files/Q1Pj4TvLbUtqNHeoRcop" alt=""><figcaption></figcaption></figure>
2. Add other widgets as needed.

***

#### Widget Text Configuration

1. Click or select the gear icon on the Text widget.

   <figure><img src="/files/Z6DEStrkvgYnezo6c8uQ" alt=""><figcaption></figcaption></figure>
2. A configuration panel for the Text widget will appear.

   <figure><img src="/files/hZuSSTcMwLnSzFnUHuGl" alt=""><figcaption></figcaption></figure>
3. Enter a **title** with any text, in this example, the title is “Demo Service.”

   <figure><img src="/files/bq4Nrig9RC5YHKxkkEcB" alt=""><figcaption></figcaption></figure>
4. Enter a **description** for the title.

   <figure><img src="/files/Oxj1R13T2WHXuEcFUap2" alt=""><figcaption></figcaption></figure>
5. Configure these parts.

   <figure><img src="/files/fKAitJ8CySiJH5bvVqnX" alt=""><figcaption></figcaption></figure>

<details>

<summary>Configuration Guide</summary>

* **Max Characters (Desc):** The maximum number of characters displayed in the “Description” field of the Text widget.
* **Icon:** Option to upload or select an icon to display with the Text widget.
* **Icon Size:** Option to set the size of the icon.
* **Title Font Size:** Option to set the font size for the widget title or label.
* **Desc Font Size:** Option to set the font size for the description or additional information.

</details>

5. Don’t forget to **save** your changes in the developer panel to ensure all configurations are stored.

<figure><img src="/files/XbdoPulbQprTimgRwR13" alt=""><figcaption></figcaption></figure>

6. Here's a preview of the text widget in your app:

* Web Version

<figure><img src="/files/WwbGg0WmcopCvoTJ6owR" alt=""><figcaption></figcaption></figure>

* Mobile Version

<figure><img src="/files/WEysykZrluNX0tJU1UfG" alt=""><figcaption></figcaption></figure>

After you download your app, install it, and enter your service code.

<figure><img src="/files/4hjbxPbWmPtY7f2u2igj" alt=""><figcaption></figcaption></figure>

This is how your finished mobile app will look.

<figure><img src="/files/SG7KntaahskWGkqcPZ2m" alt=""><figcaption></figcaption></figure>

***

#### ListView Widget Configuration

We'll use the Listview Widget to create a navigation menu that links to your forms.

1. Click the **gear icon** on the Text Widget.

   <figure><img src="/files/nR05NvE86nAgRS8I84W5" alt=""><figcaption></figcaption></figure>
2. The widget's configuration panel will open.

   <figure><img src="/files/SJUXeLlALmsYh0dcPnrB" alt=""><figcaption></figcaption></figure>
3. Click **Add Listview Item**.
4. A new section will appear for you to configure the list item.

   <figure><img src="/files/eVzYct5nz332Wf2OFTce" alt=""><figcaption></figcaption></figure>
5. Set the title to "Submit Form."

   <figure><img src="/files/bMUmbDBZAySJhOZbhmg3" alt=""><figcaption></figcaption></figure>
6. Enter a title description in the "Description" field.

   <figure><img src="/files/M0WWmYgpvICY0qZwXaet" alt=""><figcaption></figcaption></figure>
7. Customize the other settings like the image, background color, and text color, as shown below.

   <figure><img src="/files/3pu6bga8rIQ6O9wBSVVt" alt=""><figcaption></figcaption></figure>
8. Turn on the "**Enable action on Click**" option.

   <figure><img src="/files/FgT1g6C9EaCzowUQlF6N" alt=""><figcaption></figcaption></figure>
9. Set the "onClick" method to "Open Pages" and select your "Formulir" page.

   <figure><img src="/files/mI8EVSAdblRNcIHK1gIY" alt=""><figcaption></figcaption></figure>
10. Click **Save** to confirm your settings.
11. To preview, go to the preview mode and select your service, named "Demo Layanan".
12. Remember to **Save** your work on the development page to keep all changes.

    <figure><img src="/files/TIryyNPMIA43A65jCdco" alt=""><figcaption></figcaption></figure>
13. Here is a preview of the Listview widget in the app:

<figure><img src="/files/toq6Nd24elIya3hkFe6C" alt=""><figcaption></figcaption></figure>

***

#### Widget Form Configuration

Previously, we created a page for our form. We've set up a Listview widget as a navigation menu, so clicking an item will open the form page. However, we haven't added the actual form to that page yet.

In this tutorial, we'll use the Form Widget to create a complaint form with the following fields:

1. Complaint Type (jenis\_pengaduan)
2. Description (keterangan)
3. Address (alamat)
4. Photo (foto)

#### Frontend Form Configuration

Follow the steps below to add and configure the form widget:

1. On the service developer page, click on your Formulir page.

   <figure><img src="/files/3rnsXm9yqXWfnkQnyqpJ" alt=""><figcaption></figcaption></figure>
2. Add a form widget to the page by dragging and dropping it.

   <figure><img src="/files/Xtnye7zsvREYqvCV3Rgo" alt=""><figcaption></figcaption></figure>
3. Once added, click the gear icon on the form widget.

   <figure><img src="/files/rMdGXwrxllbY1jvldiGm" alt=""><figcaption></figcaption></figure>
4. The widget configuration panel will appear.

   <figure><img src="/files/okmAjQn0RrN8yx7hW6cj" alt=""><figcaption></figcaption></figure>
5. Click "**Tambah Formulir**" (Add Form).
6. An additional configuration panel will appear.

   <figure><img src="/files/kBbNTMM9CdHVJIWAIxx5" alt=""><figcaption></figcaption></figure>
7. Click "Tambah Bidang" (Add Field).
8. A new field section will be added.

   <figure><img src="/files/DRjnaDYLN9hRD64NV3jB" alt=""><figcaption></figcaption></figure>
9. Click on the new field to open its settings.

   <figure><img src="/files/K7yfpjt9uBDA6Opn4PXW" alt=""><figcaption></figcaption></figure>
10. In the **Label** section, enter "**Jenis Pengaduan**" (Complaint Type).
11. Click "**Setup Komponen**" to configure the form field.
12. The form configuration panel will appear.

    <figure><img src="/files/3fVNcgmoInRSuxfFORiZ" alt=""><figcaption></figcaption></figure>
13. Set the form type. For this, select "Standart Form".
14. Choose "**Select**" and then "**Statis**" (Static).

    <figure><img src="/files/PxaRWkdJMaiVWXErGU0g" alt=""><figcaption></figcaption></figure>
15. In the options column, enter the complaint types as shown below.

    <figure><img src="/files/tSNX4bXnlar0yAY41tQh" alt=""><figcaption></figcaption></figure>
16. Click the "**Next**" button in the bottom right corner.

    <figure><img src="/files/LKiZPG93Ro0jE4OTWIur" alt=""><figcaption></figcaption></figure>
17. The validation settings will appear. Just click "**Next**" to continue.

    <figure><img src="/files/UAOhj9Z0kkS45Lhw3X90" alt=""><figcaption></figcaption></figure>
18. The data processing settings will appear. Click "**Save**" to finish.

    <figure><img src="/files/FvluqnT1vF73MZpxjWle" alt=""><figcaption></figcaption></figure>
19. Great! You have successfully configured the "Jenis Pengaduan" field.
20. Now, let's add the "**Keterangan**" (Description) field.
21. Click "**Tambah Bidang**" (Add Field) again.
22. Click on the new field you just added.
23. In the Label section, enter "**Keterangan**".

    <figure><img src="/files/z6D6TT7svivnx6zvG7BU" alt=""><figcaption></figcaption></figure>
24. Click "**Setup Komponen**" to configure it.
25. Set the form type to "**Standart Form**".
26. Select "**Textarea**".

    <figure><img src="/files/pGMcfarR8HGaO4Sxtb0y" alt=""><figcaption></figcaption></figure>
27. Click the "**Next**" button.
28. On the validation screen, click "**Next**".
29. On the data processing screen, click "**Save**".
30. Now, let's add the "**Alamat**" (Address) field.
31. Click "**Tambah Bidang**" (Add Field).
32. Click on the new field.
33. In the **Label** section, enter "**Alamat**".

    <figure><img src="/files/IgvMXJ0198brig7r9W9e" alt=""><figcaption></figcaption></figure>
34. Click "**Setup Komponen**".
35. Set the form type to "**Standart Form**".
36. Select "**Textarea**".

    <figure><img src="/files/XbjXgaXudJElF6LNrVFC" alt=""><figcaption></figcaption></figure>
37. Click "**Next**".
38. On the validation screen, click "**Next**".
39. On the data processing screen, click "**Save**".
40. Finally, let's add the "Foto" (Photo) field.
41. Click "Tambah Bidang" (Add Field).
42. Click on the new field.
43. In the Label section, enter "Foto".
44. Click "Setup Komponen".

    <figure><img src="/files/8exozq3cj1pXqahIlbrH" alt=""><figcaption></figcaption></figure>
45. Set the form type to "**Kamera**" (Camera).
46. Select "**Kamera + Galeri**" (Camera + Gallery).
47. Click "**Next**".

    <figure><img src="/files/NDj8o20I6tPsOntIis1i" alt=""><figcaption></figcaption></figure>
48. On the validation screen, click "**Next**".
49. On the data processing screen, click "**Save**".
50. Perfect! You have now set up all the required fields for the user form.

    <figure><img src="/files/ULkubzSmwNuR06RbDI9k" alt=""><figcaption></figcaption></figure>
51. Save the entire form by clicking the "**Simpan Formulir**" (Save Form) button on the right.

    <figure><img src="/files/eVCBzUPQphyFTtxKpfnc" alt=""><figcaption></figcaption></figure>
52. The following screen will appear.

    <figure><img src="/files/4DkOLoOIXZl1gxX05AWF" alt=""><figcaption></figcaption></figure>
53. Don't forget to give your form a name. For this example, name it "Form Pengaduan" (Complaint Form).

    <figure><img src="/files/yX4SGzH1CdLDp7nwlqDg" alt=""><figcaption></figcaption></figure>
54. Click "**Simpan Sekarang**" (Save Now) to confirm.
55. Finally, remember to **Save** the entire developer page to ensure all your configurations are stored.

    <figure><img src="/files/8xlLwmZmhVA6zZqERHX3" alt=""><figcaption></figcaption></figure>

#### Backend Form Configuration

You can add an advanced form to your existing frontend form. This form will only be visible in the backend and is typically used to add a "Status" field to track submissions (e.g., **PENDING**, **IN PROGRESS**, **APPROVED**, **REJECTED**, **COMPLETED**).

Follow these steps to add and configure the backend form widget:

1. Go to the Formulir page in your service's developer area.

   <figure><img src="/files/26z5DERSWcPCBrWhfzlN" alt=""><figcaption></figcaption></figure>
2. On the form widget, click the gear icon to configure it.

   <figure><img src="/files/tWNV33x0rjtYGuzn9crb" alt=""><figcaption></figcaption></figure>
3. Click "**Tambah Formulir**" (**Add Form**) at the bottom.

   <figure><img src="/files/7hDkItLH7aTVzferbyly" alt=""><figcaption></figcaption></figure>
4. Click "**Tambah Bidang**" (**Add Field**).

   <figure><img src="/files/HXALrUMkkDhxGGc0mGKT" alt=""><figcaption></figcaption></figure>
5. A new field section will appear.
6. Click on the new field to open its settings.

   <figure><img src="/files/hORE21uG7icOxgtwSojV" alt=""><figcaption></figcaption></figure>

   <figure><img src="/files/vJZdOHhwblnBfMKqGRyD" alt=""><figcaption></figcaption></figure>
7. In the Label section, enter "Status".

   <figure><img src="/files/vJZdOHhwblnBfMKqGRyD" alt=""><figcaption></figcaption></figure>
8. Click "setup komponen" to configure this field.
9. The form configuration panel will appear.

   <figure><img src="/files/HqobeYitw9IJPQ1wteG2" alt=""><figcaption></figcaption></figure>
10. Set the form type to "**Standart Form**".
11. Choose "**Select**" and then "**Statis**" (Static).
12. In the options column, enter the status values (e.g., Pending, In Progress).

    <figure><img src="/files/64zGCVcBpxnk3FwWVE7x" alt=""><figcaption></figcaption></figure>
13. Click the "**Next**" button in the bottom right.
14. The validation settings will appear. Just click "**Next**" to continue.

    <figure><img src="/files/LKZiDy78kgRJQHrSWYL2" alt=""><figcaption></figcaption></figure>
15. The data processing settings will appear. Click "**Save**" to finish.

    <figure><img src="/files/aH68bT9FVu6wPYY9HbTd" alt=""><figcaption></figcaption></figure>
16. Congratulations! You have successfully configured the backend form field.

    <figure><img src="/files/IgMyAznu0uAKrXiELISg" alt=""><figcaption></figcaption></figure>
17. Next, click "**simpan formulir**" (Save Form), then click "**simpan sekarang**" (Save Now).
18. Finally, remember to **Save** the entire developer page to ensure all your configurations are stored.

    <figure><img src="/files/CGkfLsbkce2RE8zxfjHE" alt=""><figcaption></figcaption></figure>

***

#### Mobile Display Configuration

You can configure how submitted forms appear in the user's transaction history on the mobile app.

Here is an example of what the user's transaction list looks like on mobile:

<figure><img src="/files/x7mzry7fZEroKzCugERo" alt=""><figcaption></figcaption></figure>

Here is an example of the transaction detail view on mobile:

<figure><img src="/files/2BX6lRgUToVmyC79zgHs" alt=""><figcaption></figcaption></figure>

Oke mari kita lakukan konfigurasi, ikuti langkah dibawah ini:

1. Go to your form page.
2. Click the gear icon on the form widget.
3. Click "**Simpan Formulir**" (Save Form) at the bottom.
4.

```
An additional configuration panel will appear.
```

```
<figure><img src="/files/KbZQwhJC2KTFxLY9PPxF" alt=""><figcaption></figcaption></figure>

<figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-20%20at%2016.56.39.jpg" alt=""><figcaption></figcaption></figure>
```

5\.  Select the "**Konfigurasi App Mobile**" (Mobile App Config) sub-menu.

```
<figure><img src="/files/twJLjptt3UPIrwqZqyuP" alt=""><figcaption></figcaption></figure>

<figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-20%20at%2016.59.57.jpg" alt=""><figcaption></figcaption></figure>
```

6\.  The mobile configuration panel will open.

```
<figure><img src="/files/o6w2BYjc69DuWyPKzckQ" alt=""><figcaption></figcaption></figure>

<figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/screencapture-ina-digital-govtechindonesia-id-dev-layanan-EP4AzWYW4Ox5E6Zbwjlg-dev-2024-06-20-17_02_20.png" alt=""><figcaption></figcaption></figure>
```

7\. In the "**Judul**" (Title) field, select the `jenis_pengaduan` field.
8\. In the "**Deskripsi**" (Description) field, select the `keterangan` field.
9\. In the "**Status**" field, select the `status` field.
10\. Once these fields are set, click "**Simpan Sekarang**" (Save Now) at the bottom.
11\. Save the main developer page to store all your configurations.

```
<figure><img src="/files/4yGJV4lnwdoKSFLOvltO" alt=""><figcaption></figcaption></figure>
```

{% hint style="info" %}
Up to this the frontend configuration is completed.
{% endhint %}

***

### Backoffice/Backend

In the backoffice/backend section, you can directly monitor and manage your data. It provides widgets and components that you can configure to fit your specific monitoring and management needs.

Here is an example of a data monitoring dashboard, built using the available backoffice widgets.

<figure><img src="/files/rlJRO0di1asm5zID4gdz" alt=""><figcaption></figcaption></figure>

Here is an example of a data management dashboard, also built using the available backoffice widgets.

<figure><img src="/files/79Kl5Knk63TjwMCD9n76" alt=""><figcaption></figcaption></figure>

***

### Dashboard Monitoring

To monitor data, you'll often need various types of charts. The backoffice includes chart widgets to help you build a monitoring dashboard. In this guide, we will use the counter, line, and bar chart widgets.

***

#### Add Widget

Here are the steps to add chart widgets:

1. On the developer page, click the Backoffice sub-menu to enter the backend developer area.

   <figure><img src="/files/v8UFelBPb1AiG5ZA4k2k" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2014.56.50.jpg" alt=""><figcaption></figcaption></figure>
2. Click "**Tambah Widget**" (Add Widget).

   <figure><img src="/files/fYKOkTNF9V5GMYcePZfn" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2014.58.07.jpg" alt=""><figcaption></figcaption></figure>
3. Click "**Chart**".

   <figure><img src="/files/VcdDSQy56KGEdbFkL7z1" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2014.59.55.jpg" alt=""><figcaption></figcaption></figure>
4. Click **"Counter"** to add a counter-style chart.
5. Click **"Line"** to add a line chart.
6. Click **"Bar"** to add a bar chart.
7. Click **"Save"** to store the components you've added.

***

#### Chart Widget Configuration

We've successfully added the chart widgets. In this tutorial, let's configure each chart we added.

***

#### Chart Configuration - Counter

Follow the steps below to configure the Counter Chart:

1. Click the gear icon on the counter chart widget.

   <figure><img src="/files/pFmtm7aA3GoAMZ3VMQD9" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2016.22.28%20(1).jpg" alt=""><figcaption></figcaption></figure>
2. The configuration panel will appear.

   <figure><img src="/files/pwxxVcu3e5fB4L0q2DkT" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2015.03.54%20(1).jpg" alt=""><figcaption></figcaption></figure>
3. In the "Pilih source data" field, select "dev".

   <figure><img src="/files/4vC8QABPLPgKjNwfvOdK" alt=""><figcaption></figcaption></figure>
4. In the "Pilih data" field, select the form you created earlier, in this case, "Form Pengaduan" (Complaint Form).

   <figure><img src="/files/f6VnunkrTBoumjLcQ2zH" alt=""><figcaption></figcaption></figure>
5. In the "Metric" section, set the aggregate function to "count".

   <figure><img src="/files/3SG5rXqrKAemTokg6tnr" alt=""><figcaption></figcaption></figure>
6. In the "Label" field, enter the text "Jumlah Pengaduan" (Total Complaints).

   <figure><img src="/files/JYWcpZt6DUPR5XRfeIkF" alt=""><figcaption></figcaption></figure>
7. In the "Buckets" section, select the field to aggregate. Here, choose "\_layanan.title".

   <figure><img src="/files/2pyvZICs1AGRwXAA7BsW" alt=""><figcaption></figcaption></figure>
8. Click "Simpan" (Save) to save this configuration.

   <figure><img src="/files/qe35umme3fL3qrJ91Dss" alt=""><figcaption></figcaption></figure>
9. Finally, remember to Save the main developer page to ensure all your settings are stored.

   <figure><img src="/files/otjjY4fvCj0EtBOFgUi2" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2016.20.25.jpg" alt=""><figcaption></figcaption></figure>

***

#### Chart Configuration - Line

Follow these steps to configure the line chart:

1. Click the gear icon on the line chart widget.

   <figure><img src="/files/cSLDwZkxkW49mnNTQFma" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2016.24.36%20(1).jpg" alt=""><figcaption></figcaption></figure>
2. The configuration panel will open.

   <figure><img src="/files/wBTZPQr08RHXiGOCSSdL" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-21%20at%2016.26.30.jpg" alt=""><figcaption></figcaption></figure>
3. For the data source, select "dev".

   <figure><img src="/files/LGRVaLnHtfyaBKNXhpIP" alt=""><figcaption></figcaption></figure>
4. For the data selection, choose the form you created earlier: "Form Pengaduan".

   <figure><img src="/files/hnbxrl18FBFKA2J4lbxm" alt=""><figcaption></figcaption></figure>
5. Set the metric to "count".

   <figure><img src="/files/EAoLDqLfnLKxnGDtGq1n" alt=""><figcaption></figcaption></figure>
6. For the label, enter: "Jumlah Pengaduan /Hari" (Daily Complaints).

   <figure><img src="/files/hnubJmma3J8pmAn37Jz4" alt=""><figcaption></figcaption></figure>
7. In the buckets section, set the aggregate type to "Date Histogram".

   <figure><img src="/files/2Q3869IVNkGdDtOGbaFA" alt=""><figcaption></figcaption></figure>
8. Select the field to aggregate: "\_meta.creatAt".

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2013.01.26.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/e63TOECjooAlcgaPWpOe" alt=""><figcaption></figcaption></figure></div>
9. Set the interval to "day".

   <figure><img src="/files/YKVwqiDhi8e5IZoblN6h" alt=""><figcaption></figcaption></figure>
10. Click Save to apply your configuration.

    <figure><img src="/files/8T85vKpfmqyPEkjJxqaj" alt=""><figcaption></figcaption></figure>
11. Don't forget to Save the main developer page to keep all your changes.

    <figure><img src="/files/FQJtFzErqjYtMbIZ3cHd" alt=""><figcaption></figcaption></figure>

    <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2013.03.35.jpg" alt=""><figcaption></figcaption></figure>

***

#### Config Chart - Bar

Follow these steps to configure the bar chart:

1. Click the gear icon on the bar chart widget.

   <figure><img src="/files/9TWQODgbJOVLFKgTss73" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2013.09.30.jpg" alt=""><figcaption></figcaption></figure>
2. The configuration panel will open.

   <figure><img src="/files/3lSonSRVWRHENUZPsWXF" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2013.12.18.jpg" alt=""><figcaption></figcaption></figure>
3. For the data source, select "**dev**".

   <figure><img src="/files/qPPgd09WOWSaMGvpmv4R" alt=""><figcaption></figcaption></figure>
4. For the data, choose the form you created: "Form Pengaduan".

   <figure><img src="/files/VIIGjfBXBj66aNJY9oJX" alt=""><figcaption></figcaption></figure>
5. Set the metric to "count".

   <figure><img src="/files/vPm83bRB2zGaeaYUbf2y" alt=""><figcaption></figcaption></figure>
6. For the label, enter "Jenis Pengaduan" (Complaint Type).

   <figure><img src="/files/R1CQbgJML5jSx2nlJqAW" alt=""><figcaption></figcaption></figure>
7. In the buckets section, set the aggregate type to "Terms".

   <figure><img src="/files/aZKcZBxEqlP0rUoowT2I" alt=""><figcaption></figcaption></figure>
8. Select the field to aggregate: "jenis\_pengaduan".

   <figure><img src="/files/6kD8pkYusLwTFCdN8pam" alt=""><figcaption></figcaption></figure>
9. For the order, select "Metric".

   <figure><img src="/files/HSHE4ZxxCJ8YBeMutGL7" alt=""><figcaption></figcaption></figure>
10. For the type, select "**Desc**" (Descending).

    <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2013.28.17.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/IINRzdaEk6o1p5xxzAxM" alt=""><figcaption></figcaption></figure></div>
11. For the size, set the value to 20.

    <figure><img src="/files/wyHljeOETXF1TEu1wKpF" alt=""><figcaption></figcaption></figure>
12. Click **Save** to apply your configuration.

    <figure><img src="/files/20e8Ymin43oMYs4VYhFL" alt=""><figcaption></figcaption></figure>
13. Finally, remember to **Save** the main developer page to keep all your changes.

    <figure><img src="/files/nLluNoRuI9ZBScF2iIRh" alt=""><figcaption></figcaption></figure>

    <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2013.29.50.jpg" alt=""><figcaption></figcaption></figure>

***

### Data Management Dashboard

You can manage the data submitted by users through the frontend form. The available actions include:

1. Viewing data details
2. Deleting data
3. Updating or editing data

***

#### Add Page

To create a data management dashboard, we first need to add a new page. We'll do this because the previous page is dedicated to our monitoring dashboard, which contains all the charts we've already set up.

Follow these steps to add a new page to the backoffice/backend:

1. Click the **plus icon (+)** to add a new page.

   <figure><img src="/files/Z4wpgxlCs9m7p3GG3nnC" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2014.51.38.jpg" alt=""><figcaption></figcaption></figure>
2. A configuration panel will appear.

   <figure><img src="/files/TVTApgyc3b4GyP9tBI1n" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2014.54.48.jpg" alt=""><figcaption></figcaption></figure>
3. In the "**Name**" field, enter a name for this page. For this example, let's use "**Data Pengaduan**" (Complaint Data).

   <figure><img src="/files/lvngG6tmkGv2LjQAP5hZ" alt=""><figcaption></figcaption></figure>
4. Click "**Blank Page**" as the template.

   <figure><img src="/files/itacQMAhn8EsQKmS8bOn" alt=""><figcaption></figcaption></figure>
5. At this point, page has already been added.
6. Click "**Save**" to store the changes.

   <figure><img src="/files/yK4YP3b9yUIYIYP9sbZT" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2014.57.28.jpg" alt=""><figcaption></figcaption></figure>

***

#### Data Form Configuration

We've already added a page for our data management dashboard. Now, let's add a data widget to this page. This widget will display the submissions from our frontend form, "Form Pengaduan".

Follow these steps to add and configure the "Form Pengaduan" data widget:

1. Go to the "Data Pengaduan" (Complaint Data) page.

   <figure><img src="/files/ko0lC2jw7syfx96gSPrI" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2014.58.27.jpg" alt=""><figcaption></figcaption></figure>
2. Click "**Tambah Widget**" (Add Widget).

   <figure><img src="/files/4ZEM4DhIEZ34PMW07K7l" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2014.59.07.jpg" alt=""><figcaption></figcaption></figure>
3. Under the data sub-menu, click "**Data Form Pengaduan"**.

   <figure><img src="/files/DFhriAvP9vPyEAb9ycXQ" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2015.35.27%20(1).jpg" alt=""><figcaption></figcaption></figure>
4. Click the **gear icon** to set up the widget.

   <figure><img src="/files/1NYrf6Rif5q3CS9T3wI3" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2015.37.27.jpg" alt=""><figcaption></figcaption></figure>
5. The configuration panel will open.

   <figure><img src="/files/xQZSHuOJWNVDLarK2EVp" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2015.38.13.jpg" alt=""><figcaption></figcaption></figure>
6. In the **Title** field, enter "**Data**".

   <figure><img src="/files/Ll1ncl3g1CVqVFUytTVq" alt=""><figcaption></figcaption></figure>
7. For the **Grid Title**, select the field to be the main title. In this case, use "**\_user.nama\_lengkap**" (User's Full Name).

   <figure><img src="/files/pidEwePdFKhTMMFqK7ZZ" alt=""><figcaption></figcaption></figure>
8. For the **Grid Image**, select the field for the image. In this case, use "**foto**" (photo).

   <figure><img src="/files/tHzaAUiXVzC4iqhkRY2P" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2015.40.32%20(1).jpg" alt=""><figcaption></figcaption></figure>
9. You can add a description to the grid by clicking "**Add Grid Description**".

   <figure><img src="/files/6jLIRrLZn1BQwWE3RJwk" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2015.41.15.jpg" alt=""><figcaption></figcaption></figure>
10. A new configuration field for the description will appear.

    <figure><img src="/files/5WrRzC7SPEmM9kcvngyS" alt=""><figcaption></figcaption></figure>

    <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2015.51.55.jpg" alt=""><figcaption></figcaption></figure>
11. In the **Field** column, select the data field to display. Here, choose "**jenis\_pengaduan**" (Complaint Type).

    <figure><img src="/files/RQLntp3eHbYzolsrp0I5" alt=""><figcaption></figcaption></figure>
12. In the **Label** column, enter the display text: "**Jenis Pengaduan**".

    <figure><img src="/files/362IS1c7EenyLzBQH1Jm" alt=""><figcaption></figcaption></figure>
13. Click "**Add Grid Description**" again to add another line.

    <figure><img src="/files/mpXR8QB3k9NfPWJ7f51w" alt=""><figcaption></figcaption></figure>

    <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2015.56.15.jpg" alt=""><figcaption></figcaption></figure>
14. For this new field, select "**status**".

    <figure><img src="/files/K52PdH9YWtfWf0OhiMau" alt=""><figcaption></figcaption></figure>
15. For its label, enter the text: "**Status**".
16. In the **Background Color** field, you can map status values to colors using a colon (:). For example:

    * `waspada:#FFFF00` (Yellow)
    * `siaga:#FFA500` (Orange)
    * `awas:#FF0000` (Red)

    <figure><img src="/files/wE5OTzh5W1SVJWcITGUI" alt=""><figcaption></figcaption></figure>
17. Click "**Simpan**" (Save) to apply this configuration.

    <figure><img src="/files/i9yZiFFrH3NPmgcD00AX" alt=""><figcaption></figcaption></figure>
18. Finally, remember to **Save** the main developer page to keep all your changes.

    <figure><img src="/files/3N3DzDe7FiJCDdH9BeMM" alt=""><figcaption></figcaption></figure>

    <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2016.11.00.jpg" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Up to this the backend configuration is completed.
{% endhint %}

***

### API Integration

The developer section has an **API Integration** page for connecting to your existing backend or systems. You can adapt it to your needs using the provided endpoints:

1. `POST /update/{id}`
2. `POST /delete/{id}`
3. `GET /detail/{id}`
4. `GET /list`
5. `GET /aggs`

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2016.18.28.jpg" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VKOb5ra3TJvYNshl8qEb" alt=""><figcaption></figcaption></figure>

***

### Use Postman Collection

You can test these endpoints directly using POSTMAN by downloading the collection file from the API Integration page.

{% hint style="warning" %}
Before testing, please submit some data using your service's mobile app form. This ensures the API has data to return when you send a request.
{% endhint %}

Berikut langkah-langkah mengunduh postman collection

1. Go to the **Integrasi API** (API Integration) sub-menu in your service's developer page.

   <figure><img src="/files/ZK1az04FwObEVWZ2K4SX" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2016.21.51.jpg" alt=""><figcaption></figcaption></figure>
2. Click on **Form Pengaduan**.

   <figure><img src="/files/YZgx9lTDVyLiKSei3tcl" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2016.25.04.jpg" alt=""><figcaption></figcaption></figure>
3. Click **Postman Collection (Development)** to download the file.
4. Open the **Postman** application on your computer.
5. Click **Import** to bring the collection into Postman.

   <figure><img src="/files/GONKKVgEPMgprybTmTEV" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2016.30.31.jpg" alt=""><figcaption></figcaption></figure>
6. Upload the downloaded JSON file in the import window.

   <figure><img src="/files/kpgTcu39GSnDFzelJdSb" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2016.33.05.jpg" alt=""><figcaption></figcaption></figure>
7. You have successfully downloaded and imported the collection into Postman.

   <figure><img src="/files/4AfxLXJz8hBiDR1nkAzv" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-24%20at%2016.37.30.jpg" alt=""><figcaption></figcaption></figure>

***

#### Use GET /list

1. Inside Postman, open the **Form Pengaduan** collection.
2. Select the **GET /list** request.
3. Click the **Send** button.
4. If successful, the data will appear in the **Body** section below.

***

#### Use GET /detail{id}

1. Inside the **Form Pengaduan** collection in Postman.
2. Select the **GET /detail/{id}** request.
3. First, make sure you have copied a submission ID from the response of the **GET /list** request.
4. Paste the copied ID after `detail/` in the request URL. For example: `.../detail/AY2ryZ2sCrQ07KigLs3B`
5. Click the **Send** button.
6. If successful, the detailed data for that ID will appear in the **Body** section.

***

#### Use POST update/step-2{id}

1. Go to the "Form Pengaduan" collection in Postman.
2. Select the **POST update/step-1{id}** request.
3. Make sure you have copied a submission ID from the **GET /list** endpoint.
4. Paste the copied ID after `update/step-2/` in the URL.
5. Click on the **Body** tab.
6. In the `status` value field, change the value to **"DIPROSES"** (IN PROGRESS).
7. Click **Send**.
8. If successful, you will get a response body like the following image. To see the result, go to the backoffice of your service.
9. Click **Pratinjau** (Preview) to enter preview mode.
10. Go to the **"Data Pengaduan"** (Complaint Data) page.
11. Check the status of the complaint data. The status has now changed from **"MENUNGGU DIPROSES"** (AWAITING PROCESSING) to **"DIPROSES"** (IN PROGRESS).


# Component Settings

Add and Configure Components

First, please make sure you have already created a new [service](/home/quantumbyte-v2.0/2.builder/1.frontend/1.started) and are on the frontend [builder](/home/quantumbyte-v2.0/2.builder) page, as shown in the following image.

<figure><img src="/files/S2ZU421HuQCijC0bhPbf" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You will find several pre-built components on the left that you can add to your service. To learn more about what each component does, you can check the detailed descriptions in the [Widget](/home/quantumbyte-v2.0/2.builder/1.frontend/7.widget) menu.
{% endhint %}

***

### Add Components

To add a component to your page, simply click and hold a component from the left panel, then drag and drop it into the central page area, as demonstrated in the image below.

<figure><img src="/files/7L9pXgpQpNM7jhTVvwCB" alt=""><figcaption></figcaption></figure>

### Component Settings

Each component has its own unique settings. To configure a component, click the "Gear" icon on the component after you've placed it on the page.

<figure><img src="/files/mrqRnV0XTjjwwf50OX7v" alt=""><figcaption></figcaption></figure>

### Delete Component

If you wish to remove a component, just click the "**Trash Can**" icon on that specific component.

<figure><img src="/files/m4iBzi9P5fXeisZld8ca" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Excellent! You have now successfully learned how to add, remove, and configure components. The next stage is to learn how to create a new page within the builder.
{% endhint %}


# Page Settings

Learn how to add and configure pages.

{% hint style="info" %}
Pages on Frontend Builder are useful for services that has several layouts.
{% endhint %}

### Add Pages

To add new pages, click "**Tambah Halaman**" (Add Page) button on the right side of the page.

### Change Pages

To change pages, click the selected page that you want to configure.

<figure><img src="/files/QhnSV0ttOfmZ5nOjhVmu" alt=""><figcaption></figcaption></figure>

### Edit Page

To change the name of a page, click on the **Pencil** icon on the page.

<figure><img src="/files/Yo35q3BJn3YnEWM30PKa" alt=""><figcaption></figcaption></figure>

### Delete Page

To delete the page, click on the "**Trash**" on the page.

<figure><img src="/files/22IGeZjgPskqQTOAlrPq" alt=""><figcaption></figcaption></figure>

### Connecting Pages Through Widgets

To change between pages on the service, you can use **Widget** button that has the options **Action on Click**. Below is the configuration example.

<figure><img src="/files/GMnAua5CjWB1Lcvv79Vg" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Here, you have successfully configure a page on frontend.
{% endhint %}


# Live Preview

Live preview the services you have made.

There are 2 ways of seeing preview of your services:

* Live Preview
* APK Preview

### Activate Preview

To activate Live Preview, click the "**Pratinjau**" (Preview) button on the top right.

<figure><img src="/files/RMcZWyIdhGDAm0C3Jmw8" alt=""><figcaption></figcaption></figure>

### Live Preview

Login with the username & password that has been made available at the bottom of the Preview page. Then click on the service that you want to see.

<figure><img src="/files/aq7KE2k4SgEURvlFssJW" alt=""><figcaption></figcaption></figure>

### APK Preview

To do APK Preview,&#x20;

Download APK test and enter using the service code.


# Publish

Publishin your services to the public.

There are 2 steps so that your service can be published.

1. Publish service from Developer Dashboard
2. Publish service from Administrator Dashboard

***

### 1. Publish Service from Developer Dashboard&#x20;

Once you've finished building your service, you can publish it to the public portal. To do this, click the "**Kirim & Publikasikan**" (Submit & Publish) button in the top-right corner, as shown in the image below.

<figure><img src="/files/T4VM6iH1D18UkEXoDIbK" alt=""><figcaption></figcaption></figure>

#### Publish Developer Service

1. Click **"Kirim & Publikasikan"** (Submit & Publish).
2. Fill in the notes field with a reason for publishing this service (e.g., what it's for, or the changes you've made).

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2013.04.25.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/xQ9BfaK9IV4VImiAyXhd" alt=""><figcaption></figcaption></figure></div>
3. Click "**Kirim Sekarang**" (Submit Now).
4. A confirmation pop-up will appear. Click "**Ya, Kirim**" (Yes, Submit).

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2013.05.24.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/pFfaFsUydaj0t6u6zaIh" alt=""><figcaption></figcaption></figure></div>

{% hint style="success" %}
You have successfully submitted your service for admin review. Once approved, it will be published.
{% endhint %}


# Form Configuration


# Widget Form

The form widget in the application builder allows you to easily create custom forms for your app without any programming skills.

Creating a form involves three main stages:

1. **Form:** This section contains the list of all your different forms.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2015.00.35.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ibP8Hqr0XrDHYKTxmIPV" alt=""><figcaption></figcaption></figure></div>
2. **Validation**: This is where you set up rules to validate user input.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2015.01.58.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/FLcBjhUyitQRDU9NEWYQ" alt=""><figcaption></figcaption></figure></div>
3. **Data Process**: This is where you configure how the submitted data is handled.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2015.03.06.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/PSILEc8R0vdtnaZkeVWU" alt=""><figcaption></figcaption></figure></div>

### Using Form Widget

First, make sure you have created a new service and are on the frontend builder page, as shown in the image below.

1. **Drag and drop** the form widget from the menu onto your page.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2013.24.19.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/GvSyAySNEex8J057Sici" alt=""><figcaption></figcaption></figure></div>
2. Click the "**gear**" icon on the form widget to open its settings.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2013.26.28.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/G6LT6QnXt4XhurYGTP7W" alt=""><figcaption></figcaption></figure></div>
3. A pop-up window will appear. Click "**Tambah Formulir**" (Add Form).

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2013.27.22%20(1).jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/rGBlKYKwFesauE5nNYH7" alt=""><figcaption></figcaption></figure></div>
4. The display will change to the form builder view (as shown in the image below).

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2013.29.34.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/3UbSaOOVTq6gkc7iGHfs" alt=""><figcaption></figcaption></figure></div>
5. To add a field, click "**Tambah Bidang**" (Add Field). A new field will appear.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2014.46.27.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/xZBmVKSv7bnsQdev1pWl" alt=""><figcaption></figcaption></figure></div>
6. Configure this new field by clicking on the "**Bidang**" (Field) that you just added.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2014.48.10%20(1).jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/I7XRQJm3xszHLn8LsT4w" alt=""><figcaption></figcaption></figure></div>
7. In the "**Label**" column, enter the name for your field (e.g., "Full Name", "Email").

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2014.51.18.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/koQ4hH0FnUFfzhomzKUp" alt=""><figcaption></figcaption></figure></div>
8. Once done, click the **"Setup Komponen" (Setup Component)** button.
9. A setup panel will appear, allowing you to configure the type and behavior of the form field.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-05-30%20at%2014.54.06.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/x7KzbYsJioifyCVmRTdB" alt=""><figcaption></figcaption></figure></div>
10. Select and choose the appropriate form type for your needs (e.g., standard form, time, media, camera, location, dynamic, built-in, or external/internal data).


# Form Types

The form widget provides a variety of field types. You can choose and customize these elements to fit your specific needs.

Here are the different categories of form inputs available:

## Standard Form

<figure><img src="/files/MREkd9fySADTgGoIWg6E" alt=""><figcaption></figcaption></figure>

These are the standard building blocks for most forms:

1. **Keyboard Input** (for text, numbers, email, passwords)
2. **Number**
3. **Select** (Dropdown menu)
4. **Radio** (Select one option from a list)
5. **Checkbox** (Select multiple options)
6. **Editor** (A rich text editor for formatted content)

## Waktu (Time)

<figure><img src="/files/sIy2ftE9R7oTqaTFuWTk" alt=""><figcaption></figcaption></figure>

Used for picking dates and times, with 4 options:

1. Pemilihan tanggal (**Date Picker**)
2. Pemilihan jam (**Time Picker**)
3. Pemilihan tanggal dan jam (**Date & Time Picker**)
4. Pemilihan rentang tanggal (**Date Range Picker**)

## Media

<figure><img src="/files/l6mRdLCv8DHleNaeqsUo" alt=""><figcaption></figcaption></figure>

Used for uploading files, with 2 options:

1. **File Upload**
2. **Digital Signature**

## Camera

<figure><img src="/files/hZ552321Vu0dHtxDERst" alt=""><figcaption></figcaption></figure>

Uses the device's camera, with 3 options:

1. **QR Code Scanner**
2. **Camera** (Take a new photo)
3. **Camera & Gallery** (Take a photo or choose from gallery)

## Location

<figure><img src="/files/MILo2E4a9WqzkM3KVusB" alt=""><figcaption></figcaption></figure>

Used for capturing or sharing geographic coordinates, with 2 options:

1. **Map Coordinates** (Select from a map)
2. **Current Location** (Uses device's GPS)

## Dynamic Form

<figure><img src="/files/GYWwz8OiWLWdHZJSWkEi" alt=""><figcaption></figcaption></figure>

A type of input that allows users to add multiple entries of the same field dynamically within the form.

## Built-in

<figure><img src="/files/SMIyBBkQuUiIrOgEFime" alt=""><figcaption></figcaption></figure>

Pre-filled with common data that users can select from. There are 5 options:

1. Satuan Kerja (Work Unit)
2. Samsat (Vehicle registration office)
3. Wilayah (Region)
4. Negara (Country)&#x20;
5. API (Check Button)

## External and Internal Data

<figure><img src="/files/9zjNA0GoadPfKwlISFec" alt=""><figcaption></figcaption></figure>

Displays data from external or internal sources in a specified format. There are 2 options:

1. Select External Data
2. Select Internal Data

## Visibility Form

<figure><img src="/files/IoacOUpUUzr3hn919X4a" alt=""><figcaption></figcaption></figure>

This configuration makes a form field appear only when certain conditions are met. There are 2 types of conditions:

1. **AND Condition** (All rules must be true)
2. **OR Condition** (Any one rule must be true)

{% hint style="info" %}
*Available rules: equals, does not equal, contains, does not contain, is empty, is not empty, begins with, ends with.*
{% endhint %}

## Read-Only

<figure><img src="/files/9t4faJ7T8WMPHsBxnAdG" alt=""><figcaption></figcaption></figure>

A configuration that makes a form field visible by default, but users cannot edit it—they can only view the information.

## Hidden

<figure><img src="/files/bQIiy91DUSGxfY2bMpcL" alt=""><figcaption></figcaption></figure>

A configuration where the form field is hidden from the user's view, but its value is still included when the form is submitted.


# Validation

The form widget includes a validation function to ensure that the data users enter meets your specific requirements. This helps prevent errors and guarantees data accuracy.

This is the section where you set up the input validation rules for your form fields.

<figure><img src="/files/XNab97k8aGUT6EgVNLnf" alt=""><figcaption></figcaption></figure>

### Valdiation Setup

1. Please make sure you have already created a form and added a field to it, as shown in the following image.

<figure><img src="/files/DSYtUSZb1u9WGme7Wf2n" alt=""><figcaption></figcaption></figure>

2. Click the **"Setup Komponen" (Setup Component)** button.
3. The form setup panel will appear, allowing you to configure the field.

<figure><img src="/files/93qgYs6CS7hVrSF9ZEOc" alt=""><figcaption></figcaption></figure>

4. Select and choose the appropriate form type (*e.g., standard, time, media, camera, location, dynamic, built-in, or external/internal data*).
5. Once selected, click "**Next**" to proceed to the validation stage.

<figure><img src="/files/KI2HhGjn2hhonleLFrXG" alt=""><figcaption></figcaption></figure>

Now, define the type of validation for your field. You have 6 validation options:

1. **Required**: When activated, this means the field cannot be left empty and must be filled out.
2. **Text**: When activated, you can set the minimum and maximum allowed length for the text.
3. **Number**: When activated, you can set the minimum and maximum allowed numerical value.
4. **Image**: When activated, you can set the maximum file size for an uploaded image.
5. **File**: When activated, you can set the maximum file size and the allowed file formats (*e.g., .pdf, .doc*) for upload.
6. **External Validation**: When activated, you can set up validation based on an external endpoint (API). This endpoint must return a JSON response in this format: `{'status': true/false, 'msg': 'Success Message'}`.


# Process

Form to configure data processing.

In the data processing section, you'll find several configuration options to handle the data after a form is submitted.

1. UpperCase
2. String Replacer
3. Image Metadata
4. NLP
5. Dukcapil (Civil Registry Service Office) Data

### Setup Proses Data

1. Please make sure you have already created a form and added a field to it, as shown in the following image.

<figure><img src="/files/PogCSjXxSWgscffCKyoG" alt=""><figcaption></figcaption></figure>

2. Click the **"Setup Komponen" (Setup Component)** button.
3. The form setup panel will open, allowing you to configure the field.

<figure><img src="/files/MjQF6CdyBomPzH2HSSzR" alt=""><figcaption></figcaption></figure>

4. Select the appropriate **form type** (e.g., standard, time, media, camera, location, dynamic, built-in, or external/internal data).
5. Then, click **"Next"** to proceed to the validation stage.

<figure><img src="/files/TLze6kHMt5UoNcaIyHdX" alt=""><figcaption></figcaption></figure>

6. You will see 6 validation options. Configure them as needed, then click **"Next"** again. This will take you to the **Data Process** section.

<figure><img src="/files/WdA3acjVL8Vr4vOLjXpl" alt=""><figcaption></figcaption></figure>

Here is an explanation of the configurations available in the data process section:

1. **UpperCase** : When activated, any text entered into this field will be converted to **UPPERCASE** when saved.
2. **String Replacer** : When activated, you can set up automatic text replacement. For example, you can configure it to change "abc" to "xyz" using the format `abc:xyz`.
3. **Image Metadata** : When activated, the system will extract the image's metadata (like date taken or camera model) and save it in JSON format when the form is submitted.
4. **NLP** : When activated, the system will analyze any input text to automatically identify and extract **Names of People, Organizations, and Locations**.
5. **Dukcapil** (Civil Registry Service Office) Data: When activated, the system will automatically retrieve official population data (e.g., name, ID number) based on the specified field, pulling from the government's civil registry.

{% hint style="warning" %}
Adjust these configurations based on your needs. When you are finished, click **"Save"**.
{% endhint %}


# Stepper

The stepper includes a progress indicator to show users how far along they are in completing the form steps.

Using a stepper in your form improves the user experience by presenting the form in a structured, step-by-step process.

### Using Stepper

1. Please make sure you have already created a form and added fields to it, as shown in the image below.

<figure><img src="/files/8iKsilUdUONHrexVpJMl" alt=""><figcaption></figcaption></figure>

2. In the lower-right section of the form field, click **"Step"**.

<figure><img src="/files/oqGdq9DsaW82YIIDv2R2" alt=""><figcaption></figcaption></figure>

3. Enter a title for your step.

<figure><img src="/files/1eyhCio1l7cz0f4B0wIU" alt=""><figcaption></figcaption></figure>

4. You can reorder the steps by simply dragging and dropping them up or down to match your desired flow.

<figure><img src="/files/EKwCCR3VhTAoikM8AfOF" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The stepper makes it easy for users to review and change previous steps, allowing them to navigate back for corrections or updates.
{% endhint %}


# Payment

The Payment feature in the form widget allows you to set up and integrate payment elements directly into your form.

The form widget includes advanced configuration settings specifically for Payments.

<figure><img src="/files/ETbKGwxgi6Pzpl1wgtUZ" alt=""><figcaption></figcaption></figure>

This payment system can be integrated with various payment models and can adjust pricing based on the service you are integrating.

### Konfigurasi Payment

1. Select and click the **configuration icon** (gear) on your form widget.
2. Once inside, click "**Konfigurasi**" (Configuration) in the top-right corner.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2016.11.07.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/nlgvmvEUnZOMMPW4pZ16" alt=""><figcaption></figcaption></figure></div>
3. In the configuration menu, select "**Biaya**" (Fees).
4. On the "**Layanan Memiliki Harga?**" (Does this service have a cost?) field, click radio button to activate.
5. The interface will change, showing new options (as seen in the image below).

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2016.07.37%20(3).jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/DVatCgl9hmHqh6Di8DxQ" alt=""><figcaption></figcaption></figure></div>
6. Now, define the pricing type you want to use.

#### Defining Pricing Type

There are **3 different pricing options** to choose from

* **Option 1: Fixed Price** - Use this if the service has a single, unchanging price.

1. Fill in the **"Harga" (Price)** field with the service cost.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2016.12.28.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/EmpKpO5pCPSS5edteOqs" alt=""><figcaption></figcaption></figure></div>

2. Add a fee description (e.g., "Biaya Umum" (General fee)).

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2016.13.33.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/RZ67tWlvW2SUAdhrOrzE" alt=""><figcaption></figcaption></figure></div>

* **Option 2: Conditional Price** - Use this if the service price varies depending on specific conditions.

1. The image below shows how to set prices based on different conditions.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.01.24.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/CSjulONTRyJFmLyxdOjN" alt=""><figcaption></figcaption></figure></div>

* **Option 3: Field-Based Price** - Use this if the price is determined by a value from another form field.

#### Set Up Payment Method

1. After setting the price, proceed to configure the "**Metode Pembayaran**" (Payment Method).

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.03.15.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/d5SAw3ehjPzUep4UQSwz" alt=""><figcaption></figcaption></figure></div>
2. Set up the bank account for receiving payments.
3. There are **2 options** for the payment account: **OWN ACCOUNT** and **CENTRAL ACCOUNT**.

* Choose **"AKUN SENDIRI" (Own Account)** if payments should go to a bank account tied directly to your specific service/unit.
* Choose **"AKUN SENTRAL" (Central Account)** if payments should be directed to a central/master account (e.g., a SuperApp POLRI account).

4. Select a payment method (Bank Transfer, Open Web, Virtual Account) according to your needs.
5. Important: If you selected "**Own Account**" and "**Bank Transfer**", you must now add your bank account details in this section.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.07.37.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/qh0tZIjKd0iPWby2SvTf" alt=""><figcaption></figcaption></figure></div>
6. The interface will look like the image below.

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.08.26.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Y80scuqDckAPAf43Mbbh" alt=""><figcaption></figcaption></figure></div>
7. Click "**Tambah Data**" (Add Data) to input a new bank account.
8. A form will appear (as shown in the image below).

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.09.59.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ZOYYVbUdWpwJrWUt6633" alt=""><figcaption></figcaption></figure></div>
9. **Fill in all the fields** according to your bank account information.
10. Click the "**Submit**" button after completing the form.
11. Finally, click "**Simpan**" (Save) or "**Submit**" to save all your payment configurations.

    <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.10.56.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/q6I1VTGHbmMDrQclQ5LC" alt=""><figcaption></figcaption></figure></div>


# Shipping

Shipping/"Pengiriman" dalam widget formulir mencakup pengaturan dan integrasi elemen formulir.

The widget also offers advanced configuration options related to Shipping.

<figure><img src="/files/IC5epn1qX3C43MVp9gMA" alt=""><figcaption></figcaption></figure>

Shipping can be integrated with various third-party shipping systems and can also be customized to operate independently.

Shipping Configuration

1. Select and click the configuration icon on the widget.
2. Once inside, select and click **“Configuration”** located at the top right.
3. In the configuration section, choose **Shipping**.
4. Click the radio button to enable the configuration.
5. Once clicked, the display will appear as shown in the image below.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.15.35.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/b8KZshitY0dRyawNgYpz" alt=""><figcaption></figcaption></figure></div>

7. Determine the courier and shipping service.
8. There are three available options: **All**, **Selected**, and **External**.
   * **All**: Uses all courier types available in the system.
   * **Selected**: Uses couriers or shipping services based on the selected options.
   * **External**: Uses couriers with their own independent system.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.19.15.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/SsyHUEMs3Ual2jDnEMg9" alt=""><figcaption></figcaption></figure></div>

9. Once the courier or shipping service is selected, fill in the **Item Name** field with the name of the item to be shipped.
10. Fill in the **Item Weight** field based on the item’s weight, in grams.
11. Determine the **Shipping Address Type**.
12. There are three address type options: **Single Address**, **Unit (Satker)**, and **Conditional**.
    * **Single Address**: The shipping cost is determined based on the specified address.
    * **Unit (Satker)**: The shipping cost is determined based on the location or address of a specific unit.
    * **Conditional**: The shipping cost is determined based on the defined address conditions.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.21.30.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/j9JAkgnwhwfuWLIYVgVr" alt=""><figcaption></figcaption></figure></div>

11. If you select **Conditional**, an advanced configuration will appear to set specific conditions for the shipping address.
12. Once the shipping address type has been determined, proceed to the next configuration step.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.24.51.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/cTltcnLmH5ZzTsHhab1s" alt=""><figcaption></figcaption></figure></div>

13. In the **“Track Package”** section, the options **Show Tracking Number** and **Show Notes** are enabled by default. You can disable them if not needed.
14. Next, select the **Tracking Mode**.
15. There are three available tracking mode options: **External API**, **Open Link**, and **No Action**.
    * **External API**: This mode tracks the shipment number using an external API URL.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.26.40.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/KbH3Uek4Q8aMbhuezu6N" alt=""><figcaption></figcaption></figure></div>

* ***OPEN LINK*** : mode lacak akan bekerja dengan cara membuka link yang sudah ditentukan

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.28.38.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/uFQtDkXhxLfyPP5pqyhN" alt=""><figcaption></figcaption></figure></div>

* ***NO ACTION*** : tidak ada mode lacak yang aktif untuk dilihat oleh pengguna

16. If you want to set conditions based on a specific field, click and select **Add Rule** to add a condition.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.29.36.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/eprIbvVxKKBJrUtrL2CB" alt=""><figcaption></figcaption></figure></div>

17. Once all configurations are completed, select and click **Save**.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-04%20at%2017.30.49.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/QL317PGV5hMUkPV1coVi" alt=""><figcaption></figcaption></figure></div>


# Widget


# Form

The Form Widget is a widget used to create forms within the application, featuring various data types and input elements such as text, numbers, images, and more.

Ensure you have already created a new service and are on the frontend builder page, as shown in the image below:

<figure><img src="/files/no6sN0QjVKoolYftAhZ7" alt=""><figcaption></figcaption></figure>

1. Drag and drop the **“Form”** widget.
2. Select and click the **“Configuration”** button on the form widget.
3. A screen will appear as shown in the image below:

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.01.01.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/08ZJJTUX4KBSBpS6mT8D" alt=""><figcaption></figcaption></figure></div>
4. Select and click **“Add Form”**.
5. The display will then change as shown in the image below:

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.03.21%20(1).jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Mg8JZqwEN4PVtkXAtlfF" alt=""><figcaption></figcaption></figure></div>

6. To add a field column, select and click **“Add Field.”**
7. A new field will appear.
8. Click the newly added field.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.04.46.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/WiqOug0Gt0HRMtHfB5nN" alt=""><figcaption></figcaption></figure></div>

6. In the **Label** column, enter the name of the field you want to create.
7. Next, select and click the **“Setup Component”** button and a form setup section will appear, allowing you to configure the form field.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.05.39.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/IJhtuzCRHC0bFKKn2dLZ" alt=""><figcaption></figcaption></figure></div>

8. Select and adjust the **form type** to be used (**Standard Form**, **Time**, **Media**, **Camera**, **Location**, **Dynamic**, **Built-in**, or **External/Internal Data**).


# Popup

The Popup Widget is a widget used to display a small window or popup over the main layout.

Ensure you have already created a new service and are on the frontend builder page, as shown in the image below:

<figure><img src="/files/madBHkPB4hR69rrROobA" alt=""><figcaption></figcaption></figure>

1. Drag and drop the **“Popup”** widget.
2. Select and click the **“Configuration”** button on the Popup widget.
3. A screen will appear as shown in the image below.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.10.17.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/RzwRrky4YFqn0QazOABG" alt=""><figcaption></figcaption></figure></div>

4. In the **“Title”** field, enter the desired popup title.
5. In the **“Content”** field, fill in the content to be displayed (it can include text and images).
6. Click **“Save”** to save your changes.


# Divider

The Divider Widget is a widget used to separate or divide elements from one another within the user interface.

Ensure that a new service has been created and that you are on the frontend builder page, as shown in the image below:

<figure><img src="/files/OkS5qYFPhAzKavIzExvy" alt=""><figcaption></figcaption></figure>

1. Drag and drop the **“Divider”** widget.
2. Select and click the **“Configuration”** button on the Divider widget.
3. A screen will appear as shown in the image below.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.19.57.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/lFjw5kHMLaROcJDqumpE" alt=""><figcaption></figcaption></figure></div>

4. Set the desired widget height.
5. Lastly, click **“Save”** to save the changes.


# Spacer

The Spacer Widget is a widget used to add empty space or padding between elements within a layout.

Ensure that a new service has been created and that you are on the frontend builder page, as shown in the image below:

<figure><img src="/files/uuDIp6rpsBqJ7kunQyh1" alt=""><figcaption></figcaption></figure>

1. Drag and drop the **“Spacer”** widget.
2. Select and click the **“Configuration”** button on the Spacer widget.

A screen will appear as shown in the image below:

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.23.17.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/8DzB7PKxoK1UzejgRlKR" alt=""><figcaption></figcaption></figure></div>

3. Set the desired size.
4. Once finished, click **“Save”** to save the changes.


# Data External

The External Data Widget is a widget used to integrate data from external sources into the application.


# View External

The External View Widget is a widget used to display views or content from external sources within the application.

...


# Transaction History

The Transaction History Widget is a widget used to display transaction records or history within the application.

Ensure that a new service has been created and that you are on the frontend builder page, as shown in the image below:

<figure><img src="/files/IY8Zw9QK5E4YYDHke3Fq" alt=""><figcaption></figcaption></figure>

1. Drag and drop the **“Transaction History”** widget.
2. Select and click the **“Configuration”** button on the Transaction History widget.

A screen will appear as shown in the image below.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.24.59.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Pvba9nStGvzwsdMKeJIo" alt=""><figcaption></figcaption></figure></div>

3. Enter the desired title in the **“Title”** field.
4. Once finished, click **“Save”** to save the changes.


# Identity Information

The Identity Info Widget is a widget used to display identity or profile information of a user or a specific object within the application.

Ensure that a new service has been created and that you are on the frontend builder page, as shown in the image below:

<figure><img src="/files/9a9Jb7SDEDoYwAz8N1TF" alt=""><figcaption></figcaption></figure>

1. Drag and drop the **“Identity Info”** widget.
2. Select and click the **“Configuration”** button on the Identity Info widget.

A screen will appear as shown in the image below.

<div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.39.58.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/w3STAAqwU3FufFsI7guC" alt=""><figcaption></figcaption></figure></div>

3. Fill in the **“Title”** field with the desired title.
4. Enter the **“Description.”**
5. Once finished, click **“Save”** to save the changes.


# Image

Widget image adalah widget yang digunakan untuk menampilkan gambar atau grafik dalam antarmuka pengguna.

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut :

<figure><img src="/files/qlY32KPidEhRnhbABCc9" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"Image"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"Image"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.44.31.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/4SvfWCb8pcKvTayTA5QN" alt=""><figcaption></figcaption></figure></div>
4. Klik tanda ***"+"*** pada bagian ***"Image"*** untuk memasukan gambar
5. Terdapat kolom ***"Box-Fit"*** yang berfungsi Untuk mengatur image terhadap ruang atau space yang tersedia. Di dalam ***"Box-Fit"*** terdapat ***cover,*** ***fill*** dan ***contain***.
6. ***Cover*** : Image yang diganti berukuran untuk mempertahankan rasio aspeknya sambil mengisi seluruh kotak konten elemen.
7. ***Fill*** : Image yang diganti akan berukuran untuk mengisi kotak konten elemen.
8. ***Contain*** : Image yang diganti diskalakan untuk mempertahankan rasio aspeknya sementara didalam kotak konten elemen
9. Terdapat kolom ***"Height"*** yang berfungsi untuk mengatur tinggi dari gambar yang kita masukan
10. Ada pengaturan tambahan ***"Enable Action onClick"***
11. Kita bisa memasukan event click pada gambar dengan cara mengaktifkan radio button dari ***"Enable Action onClick"***
12. Setelah ditampilkan akan muncul konfigurasi tambahan

    <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.45.21.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/afyPud3XRgOkQHUJ1czn" alt=""><figcaption></figcaption></figure></div>
13. Kolom ***"onClick Method"*** berisikan 3 opsi pilihan method click
14. ***Open url*** : ketika gambar di klik maka event yang muncul adalah aplikasi akan membuka url yang ditentukan pada kolom url
15. ***Open pages*** : ketika gambar di klik maka event yang muncul adalah aplikasi akan membuka page yang ditentukan pada kolom page
16. ***Open Popup*** : ketika gambar di klik maka event yang muncul adalah aplikasi akan memunculkan popup yang berisikan text yang sudah ditentukan pada kolom text ketika memilih opsi popup.
17. Sesuaikan penggunaan berdasarkan kebutuhan
18. Jika sudah, klik ***"Save"*** untuk menyimpan


# Image Slider

Widget image slider adalah widget yang digunakan untuk menampilkan serangkaian gambar yang dapat bergeser atau berubah secara otomatis, menciptakan efek slide show

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut

<figure><img src="/files/O3EkrufeN6GRPsJaIYA9" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"Image Slider"***
2. Pilih dan klik tombol ***"Konfigurasi"*** yang terdapat pada widget ***"Image Slider"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.46.42.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/F6DwC8RFWQv1JvMdPNUF" alt=""><figcaption></figcaption></figure></div>
4. Untuk memasukkan atau menambahkan gambar klik add ***"Slider Item"***
5. Akan muncul bidang slider sebagai tempat kita menambahkan gambar

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.47.42.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/rHLMsj8RbVcdrgHhtQ0L" alt=""><figcaption></figcaption></figure></div>
6. Isi kolom yang ada dan sesuaikan dengan kebutuhan
7. Jika ingin menambahkan gambar slide, klik kembali add ***"Slider Item"*** kemudian isi kolom dan masukan gambar selanjutnya
8. Ulangi cara diatas untuk menambahkan gambar slide
9. Pada widget ***"Slider Item"*** terdapat pengaturan size yang sama seperti yang ada pada widget image

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.48.11.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/YYxDmMS8rOb5qHjkEtTH" alt=""><figcaption></figcaption></figure></div>
10. Sesuaikan penggunaan berdasarkan kebutuhan
11. Jika sudah, klik ***"Save"*** untuk menyimpan


# Button

Widget button adalah widget yang digunakan untuk membuat tombol yang dapat diklik oleh pengguna, digunakan untuk memicu aksi atau perubahan dalam aplikasi

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut :

<figure><img src="/files/zh43Smg287UDXeJAho9v" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"Button"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"Button"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.53.33.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/HDIyh8YpG4neK30vD45a" alt=""><figcaption></figcaption></figure></div>
4. Kolom ***"Text"*** bisa anda gunakan untuk menampilkan tulisan yang akan tampil pada button yang anda buat
5. Atur size widget pada kolom ***"Size"***
6. Terdapat 3 opsi pilihan dalam menentukan size (***nomal, small, large***)
7. Atur lebar widget pada kolom ***"Width"***
8. Terdapat 2 opsi pilihan dalam menentukan lebar button (***default, fullwidth***)
9. Atur posisi widget pada kolom ***"Aligment"***
10. Terdapat 3 opsi pilihan dalam menentukan posisi widget botton (***left, center, right***)
11. Terakhir pilih method click yang akan digunakan
12. Sesuaikan konfigurasi berdasarkan kebutuhan
13. Jika sudah, klik ***"Save"*** untuk menyimpan


# Listview

Widget ListView adalah widget yang digunakan untuk menampilkan daftar elemen dalam tata letak vertikal.

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut :

<figure><img src="/files/Om2zd09fcAjd1byOad88" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"Listview"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"Listview"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.58.53.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/5bXfzRGvJMx6HbD54QWn" alt=""><figcaption></figcaption></figure></div>
4. Untuk membuat dan menambahkan listview klik add ***"Listview Item"***
5. Akan muncul bidang listview sebagai tempat kita mengatur listview yang akan dibuat

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2016.59.40.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/7vMVbPvINRkryna99Icx" alt=""><figcaption></figcaption></figure></div>
6. Isi kolom berdasarkan kebutuhan
7. Masukan gambar jika listview yang akan dibuat memiliki gambar di bagian ***"Image"***
8. Atur warna backgroud dengan cara klik dan pilih warna yang akan digunakan di bagian ***"Background Color"***
9. Atur warna text dengan cara klik dan pilih warna yang akan digunakan di bagian ***"Text Color"***
10. Apabila listview ingin memiliki event click, jangan lupa untuk diaktifkan ***"Enable Action onClick"***
11. Kemudian lakukan konfigurasi pada event click
12. Jika ingin menambahkan listview, klik kembali tombol ***"+ Add Listview Item"***
13. Kemudian lakukan hal yang sama pada tahapan konfigurasi
14. Sesuaikan penggunaan berdasarkan kebutuhan
15. Jika sudah, klik ***"Save"*** untuk menyimpan


# Listview Data

Widget ListView Data adalah widget yang digunakan untuk menampilkan daftar data dalam tata letak vertikal

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut :

<figure><img src="/files/XJR2wqzUHsjzVHBTw9C2" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"Listview Data"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"Listview Data"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2017.01.10.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/tEw4t27Jf930u4der7fF" alt=""><figcaption></figcaption></figure></div>
4. Pada kolom ***"Pilih Data"*** tentukan data yang akan dimunculkan pada listview

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-07-01%20at%2017.06.43.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/CmmfuTeOtVB5xyko5dIU" alt=""><figcaption></figcaption></figure></div>
5. Isi kolom field yang wajib di isi
6. Kolom limit show untuk menentukan berapa data yang akan dimunculkan pada listview

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-07-01%20at%2017.13.37.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ZzjHDh6JJBZXQwJnIBbJ" alt=""><figcaption></figcaption></figure></div>
7. Tipe urutan bisa ditentukan ascending atau descending

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-07-01%20at%2017.14.34.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/a65IYRGKCY5ZHA6ZKepG" alt=""><figcaption></figcaption></figure></div>
8. Tentukan field data yang akan dimunculkan pada kolom ***"Judul, Gambar*** dan ***Deskripsi"***

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-07-01%20at%2017.15.19%20(1).jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/8m9r4euRlcuOohoLANzl" alt=""><figcaption></figcaption></figure></div>
9. Jika data sudah ditentukan maka akan muncul bidang konfigurasi tambahan seperti gambar dibawah ini

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2017.02.39.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/HFlBOGI9On5Wfv6G0M11" alt=""><figcaption></figcaption></figure></div>
10. Jika ingin menambahkan detail pada saat listview data di click, pilih dan klik add ***"Detail View"*** kemudian tentukan field yang akan ditambahkan

    <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-05%20at%2017.04.14.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/uI7FdYum5Z3BFCjuxKER" alt=""><figcaption></figcaption></figure></div>
11. Tidak ada batasan ketika akan menambahkan detail view
12. Sesuaikan penggunaan berdasarkan kebutuhan
13. Jika sudah, klik ***"Save"*** untuk menyimpan


# Gridview

Widget GridView adalah widget yang digunakan untuk menampilkan elemen dalam tata letak grid (kisi).

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut :

<figure><img src="/files/EhPDqA0HfrQifX2f1Bt3" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"GridView"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"GridView"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.05.28.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/5JBwVeYG87UxBgEaknnQ" alt=""><figcaption></figcaption></figure></div>
4. Klik dan pilih add ***"GridView"*** untuk menampilkan bidang pengaturan pada gridview yang akan di tambahkan

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.06.18.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/r2Zivn6ttQhzLmRJue7h" alt=""><figcaption></figcaption></figure></div>
5. Kolom ***"Title"*** biasanya diisi dengan judul
6. Kolom ***"Deskripsi"*** bersifat tidak wajib diisi
7. Tambahkan gambar jika gridview yang akan dibuat memiliki gambar di bagian ***"Icon"***
8. Dalam widget gridview juga bisa diberikan event click
9. Aktifkan ***"Enable Event onClick"*** jika ingin memberikan event click pada gridview yang dibuat
10. Ulangi cara diatas jika ingin menambahkan beberapa gridview
11. Terdapat konfigurasi tambahan pada gridview, seperti ***"Column, Row,*** dan ***Height"***
12. ***Column*** : berfungsi untuk mengatur berapa banyak kolom gridview yang akan tampil
13. ***Row*** : berfungsi untuk mengatur berapa banyak baris gridview yang akan tampil
14. ***Height*** : berfungsi untuk mengatur tinggi dari gridview
15. Sesuaikan penggunaan berdasarkan kebutuhan
16. Jika sudah, klik ***"Save"*** untuk menyimpan


# Htmlview

Widget yang berfungsi untuk memuat raw html, dimana frontend builder juga dilengkapi dengan built-in HTML Editor

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut :

<figure><img src="/files/cA75lzyxlpzBMVo9xNvh" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"HtmlView"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"HtmlView"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.07.49.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/gXXL7xGa7MfYcBnoWTue" alt=""><figcaption></figcaption></figure></div>
4. Pada widget ini terdapat opsi pengisian konten html dengan ***"Mode Editor*** dan ***Mode Textarea"***
5. Secara default widget ini akan menampilkan konfigurasi dalam ***"Mode Editor"***
6. Isi konten pada bidang ***"Mode Editor"*** berdasarkan kebutuhan

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.09.42.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/SsDuyDWPo8EQK3OrBhVC" alt=""><figcaption></figcaption></figure></div>
7. ***"Mode Textarea"*** penggunaannya lebih kedalam penggunaan dengan tag html secara langsung

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.10.29.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/BOQkctLf4xvIapHXIWET" alt=""><figcaption></figcaption></figure></div>
8. Dalam widget ini bisa mengisikan konten apapun yang support di implementasi oleh Html
9. Widget ***"HtmlView"*** mampu membaca image dan juga video, membuat paragraf, penomoran, merubah warna tulisan, dll
10. Sesuaikan penggunaan berdasarkan kebutuhan
11. Jika sudah, klik ***"Save"*** untuk menyimpan


# Webview

Widget WebView adalah widget yang digunakan untuk menampilkan dan merender halaman web atau konten web dalam aplikasi

Platform INA Digital memungkinkan para pengembang untuk memasukkan konten berbasis teknologi web melalui integrasi WebView.

| Target Platform             | Jenis Integrasi                                                                                                                                        | Jenis Mesin Peramban (*Browser Engine*)                                                                                                                                            |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Situs Portal Nasional       | `<iframe>`                                                                                                                                             | Bergantung kepada jenis peramban (*web browser*) yang digunakan untuk mengakses situs Portal Nasional.                                                                             |
| Portal untuk Android        | [WebView](https://developer.android.com/develop/ui/views/layout/webapps) (bukan [Custom Tabs](https://developer.chrome.com/docs/android/custom-tabs/)) | Bergantung kepada jenis peramban khusus WebView yang dipasang oleh perangkat pengguna; biasanya Google Chrome (berbasis Chromium) atau Android System WebView (berbasis Chromium). |
| Portal untuk iOS dan iPadOS | [WkWebView](https://developer.apple.com/documentation/webkit/wkwebview)                                                                                | WebKit.                                                                                                                                                                            |

#### Persyaratan Teknis WebView

Layanan Anda harus memenuhi ketentuan teknis sebagai berikut untuk dapat disetujui untuk dipublikasikan ke dalam Portal Nasional.

1. Jika situs Anda mewajibkan penggunaan pengaturan [`X-Frame-Options`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) atau [`frame-ancestors` pada Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors), Anda diwajibkan untuk memberi *whitelist*/*allowlist* kepada `*.govtechindonesia.id` agar dapat diakses dalam Portal Nasional.
2. Layanan Anda harus dapat diakses sekurang-kurangnya pada perangkat:

* **Android 7.0** (Nougat) (dirilis Agustus 2016)
* **iOS 12.0** (dirilis September 2018)
* **Google Chrome 76** (dirilis Juli 2019)
* **Firefox 68 ESR** (dirilis Juli 2019)
* **Safari 12.0** (dirilis September 2018)

3. Layanan Anda harus dapat diakses pada perangkat dengan dimensi layar minimum sebagai berikut:

* \*\*Situs untuk perangkat *mobile*, vertikal:\*\*320 (lebar) × 504 (tinggi) piksel, setara perangkat iPhone 5S
* **Situs untuk perangkat \_mobile**\_**, horizontal:** 568 (lebar) × 256 (tinggi) piksel, setara perangkat iPhone 5S
* **Situs untuk perangkat \_desktop**\_**:** 1280 (lebar) × 720 (tinggi) piksel, setara standar layar HDTV 720p

Selain ketentuan wajib di atas, kami merekomendasikan Anda untuk menerapkan beberapa hal ini untuk meningkatkan kualitas pengalaman pengguna (UX) aplikasi INA Digital. **Kami dapat sewaktu-waktu menaikkan syarat berikut ini menjadi wajib untuk mempublikasikan layanan web Anda ke dalam Portal Nasional.**

***

Untuk membuat webview, pastikan anda sudah di halaman builder frontend:

<figure><img src="/files/UPypVW1s9M8biwoJvCAK" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"WebView"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"WebView"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.11.58.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/gWI5sPpBV0fjNzcyADhR" alt=""><figcaption></figcaption></figure></div>
4. Masukan judul webview pada kolom ***"Title"***
5. Masukan URL atau link website yang akan menjadi tujuan pada kolom ***"URL"***
6. Jika user diwajibkan untuk login dahulu pada aplikasi, maka aktifkan radio button pada bagian ***"Wajib Login"***
7. Jika ingin menyertakan token user pada saat membuka url, aktifkan radio button pada bagian ***"Parameter Token User"***

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.12.59.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/y5eFDbjauQP0fQ3JHT2x" alt=""><figcaption></figcaption></figure></div>
8. Jika sudah, klik ***"Save"*** untuk menyimpan


# MapView

Widget MapView adalah widget yang digunakan untuk menampilkan peta atau informasi geografis dalam aplikasi.

Pastikan sebelumnya anda sudah membuat layanan baru, dan sudah berada pada halaman frontend builder seperti gambar berikut :

<figure><img src="/files/DOefFSNpqMKPcykzH7Gn" alt=""><figcaption></figcaption></figure>

1. Drag and drop widget ***"MapView"***
2. Pilih dan klik tombol konfigurasi yang terdapat pada widget ***"MapView"***
3. Akan muncul tampilan seperti gambar dibawah

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.14.04.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ZB7mfDuiwR9yYIakHqoJ" alt=""><figcaption></figcaption></figure></div>
4. Pada kolom ***"Pilih Data"*** tentukan data yang akan dimunculkan pada listview
5. Jika ingin menambahkan detail pada saat listview data di click, pilih dan klik add detail view kemudian tentukan field yang akan ditambahkan

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2014.16.13.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/D8Jpkx2as8LSqqirFJdO" alt=""><figcaption></figcaption></figure></div>
6. Sesuaikan penggunaan berdasarkan kebutuhan
7. Jika sudah, klik ***"Save"*** untuk menyimpan


# Backoffice


# Langkah Awal

Mulai menggunakan builder backend

Pastikan anda sudah membuat layanan pada halaman developer

<figure><img src="/files/4idROnBM9rw6bpqRSRP7" alt=""><figcaption></figcaption></figure>

Klik menu backend pada halaman developer untuk masuk ke halaman backend builder.

<figure><img src="/files/uu0CcW54xmbx05cn5NqE" alt=""><figcaption></figcaption></figure>

Akan muncul tampilan seperti gambar berikut ini:

<figure><img src="/files/iUL4W47Er9jZz5IL6Cyq" alt=""><figcaption></figcaption></figure>


# Komponen

Menambah dan mengatur komponen

Pastikan anda sudah membuat layanan pada halaman developer

<figure><img src="/files/OWZZTSj1fSzISCCsKUZy" alt=""><figcaption></figcaption></figure>

Pastikan anda berada di menu backoffice

<figure><img src="/files/qCyK7NtcU6MDTndff7EL" alt=""><figcaption></figcaption></figure>

klik tambah widget untuk menambahkan komponen

<figure><img src="/files/BvsmV8eq9UOE5xEGkisU" alt=""><figcaption></figcaption></figure>

Terdapat beberapa komponen yang dapat ditambahkan. Komponen dibagi menjadi 3 bagian yaitu:

1. Basic
2. Data
3. Chart

<figure><img src="/files/FmEgk8iaDfSOqK87ywRy" alt=""><figcaption></figcaption></figure>

### Menambahkan komponen

Untuk menambahkan komponen klik *"Tambah Widget"* akan muncul halaman pop-up, kemudian pilih komponen yang akan anda digunakan.

<figure><img src="/files/3AiwJjzUjNJgyPWpgjsS" alt=""><figcaption></figcaption></figure>

### Konfigurasi Komponen

Setiap komponen memiliki konfigurasi yang berbeda, untuk melakukan konfigurasi klik icon 'Gear' pada komponen

<figure><img src="/files/Gd1ecQxpvIvjGhIS6wrt" alt=""><figcaption></figcaption></figure>

### Menghapus Komponen

Untuk menghapus komponen klik icon *"Tempat sampah"* pada komponen

<figure><img src="/files/OIwmpjtKAmitGQ7GMurb" alt=""><figcaption></figcaption></figure>

*Selesai, sampai tahap ini anda sudah berhasil menambahkan, menghapus serta mengatur komponen, tahap selanjutnya untuk membuat halaman baru pada builder backend.*


# Halaman

Menambah dan mengatur halaman

### Menambah Halaman

Untuk menambahkan halaman baru Klik tambah halaman dengan tanda simbol +.

<figure><img src="/files/pdlwvVkEeEzu5sEyEfGL" alt=""><figcaption></figcaption></figure>

### Berpindah Halaman

Untuk berpindah halaman, silahkan klik pada halaman yang di tuju

<figure><img src="/files/VXP9u7Gw1SLHYab4Xo84" alt=""><figcaption></figcaption></figure>

### Edit Halaman

Untuk mengubah nama halaman silahkan klik icon 'pencil' pada halaman

<figure><img src="/files/eBuNJwaTdsTykQghaUKd" alt=""><figcaption></figcaption></figure>

Edit nama yang diinginkan pada kolom name

<figure><img src="/files/70cIb9zIoijg9tQfqb0R" alt=""><figcaption></figcaption></figure>

### Menghapus Halaman

Untuk menghapus komponen klik icon 'Tempat sampah' pada halaman

<figure><img src="/files/j6NMbqHvjfiowIwxPKgk" alt=""><figcaption></figcaption></figure>

*Sampai tahap ini anda sudah berhasil mengelola halaman pada backend anda, tahap selanjutnya preview dev version dari layanan anda*


# Melihat Pratinjau

Melihat layanan secara langsung

untuk melihat pratinjau layanan, klik tombol pratinjau di bagian atas.

<figure><img src="/files/cVBiHC3Ry723A8jmhQ84" alt=""><figcaption></figcaption></figure>


# Publish Layanan

Mempublish layanan ke portal

Backend Layanan yang sudah dibuat dan sudah selesai di konfigurasi dapat di publikasikan ke portal publik, dengan cara klik **kirim dan publikasikan** yang berada di pojok kanan atas seperti gambar berikut ini:

<figure><img src="/files/XLRGAJ4Zx7UeJ1yMCeYn" alt=""><figcaption></figcaption></figure>

Klik **kirim dan publikasikan** Isi kolom catatan yang berisikan alasan layanan harus di publish

<figure><img src="/files/gMopxVz9ptW0ff2Eq2Uv" alt=""><figcaption></figcaption></figure>

Klik **kirim sekarang** Klik **Ya, Kirim**

<figure><img src="/files/AwmwSJdK8OtVlsgx7DBx" alt=""><figcaption></figcaption></figure>

*Sampai tahap ini anda sudah berhasil mempublish layanan ke portal publik*


# Formulir


# Basic Form

Menggunakan Basic Form pada backend builder

Dalam widget formulir terdapat 3 tahapan yang akan dilalui pada saat membuat form

1. Form : Bidang yang berisikan list dari berbagai jenis formulir

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2015.16.28.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/MTHD1WdHObq0uKPI2n7T" alt=""><figcaption></figcaption></figure></div>
2. Validasi : Bidang untuk mengatur validasi input pada sebuah form

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2015.16.43.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/eDWsDYDDc19pJEZ9Hw4y" alt=""><figcaption></figcaption></figure></div>
3. Prosses Data : Bidang untuk mengatur pemrosesan data

   <div><figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2015.16.54.jpg" alt=""><figcaption></figcaption></figure> <figure><img src="/files/bcgwj56Yu8Hxd89toQlY" alt=""><figcaption></figcaption></figure></div>

Sesuaikan konfigurasi berdasarkan kebutuhan


# Jenis Formulir

![](/files/m3Mi8lvJgYllkdxaz6R4)Terdapat beberapa jenis formulir yang tersedia, dapat disesuaikan dengan kebutuhan dalam proses pembuatan form.

## Form Standar

<figure><img src="/files/iwbnmqPKs1tDVyRp6t6p" alt=""><figcaption></figcaption></figure>

Jenis form input yang merupakan komponen basic, diantaranya yaitu:

1. Input Keyboard (text, number, email, password)
2. Number
3. Select
4. Radio
5. Checkbox
6. Editor

## Waktu

<figure><img src="/files/079MttWvSX8MvZx1TPxh" alt=""><figcaption></figcaption></figure>

Jenis form input yang dapat digunakan untuk memilih waktu, terdapat 4 pilihan waktu yang dapat dipilih yaitu:

1. Pemilihan tanggal
2. Pemilihan jam
3. Pemilihan tanggal dan jam
4. Pemilihan rentang tanggal

## Media

<figure><img src="/files/DouS4sPJyS2vk6ms0C12" alt=""><figcaption></figcaption></figure>

Jenis form input yang dapat digunakan untuk mengupload sebuah file:

1. Upload File

## Kamera

<figure><img src="/files/eUNMUEtI22c7RtgndF6S" alt=""><figcaption></figcaption></figure>

Jenis form input yang berasal dari penggunaan kamera, terdapat 2 opsi pilihan yang dapat disesuaikan dalam penggunaannya, yaitu:

1. Scan QR
2. Kamera dan Galeri

## Lokasi

<figure><img src="/files/FvOY6d9eq4t1HYbnjt4Y" alt=""><figcaption></figcaption></figure>

Jenis form input yang digunakan untuk mengambil atau sharing lokasi berdasarkan kordinatnya, terdapat 2 opsi pilihan, yaitu:

1. Kordinat Peta
2. Kordinat saat ini

## Form Dinamis

<figure><img src="/files/0mWPI7LR5v5tDxtevgra" alt=""><figcaption></figcaption></figure>

Jenis form input yang yang dapat ditambahkan secara dinamis didalam form

## Built-in

<figure><img src="/files/GvcDvtGyW7vCbKkB0ArE" alt=""><figcaption></figcaption></figure>

Jenis form input yang sudah berisikan data yang dibutuhkan yang dapat disesuaikan berdasarkan kebutuhan pengguna. Terdapat 5 opsi pilihan, yaitu:

1. Satuan Kerja
2. Samsat
3. Wilayah
4. Negara
5. API(Button Check)

## External dan Internal Data

<figure><img src="/files/07GfbKbxvjHVyL40IAH1" alt=""><figcaption></figcaption></figure>

Jenis form input yang dapat menampilkan data yang berasal dari eksternal dan internal dengan format data yang telah ditentukan. Terdapat 2 opsi pilihan yaitu:

1. Select External Data
2. Select Internal Data

## Setup informasi field

<figure><img src="/files/m3Mi8lvJgYllkdxaz6R4" alt=""><figcaption></figcaption></figure>

Konfigurasi form untuk memberikan informasi terkait field yang dibuat

## Visibility Form

<figure><img src="/files/1SNk2uNpfJzj9CiSqTxi" alt=""><figcaption></figcaption></figure>

Jenis konfigurasi form yang berfungsi untuk memberikan kondisi pada sebuah form input, dimana sebuah form akan muncul ketika diberikan kondisi yang terpenuhi. Terdapat 2 opsi kondisi yaitu:

1. Kondisi AND (equel, does not equel, contains, does not contains, is empty, is not empty, begins with, ends with)
2. Kondisi OR (equel, does not equel, contains, does not contains, is empty, is not empty, begins with, ends with)

Sesuaikan penggunaan jenis formulir berdasarkan kebutuhan dalam mengembangkan aplikasi


# Validation

Bidang untuk mengatur validasi input pada sebuah form

<figure><img src="/files/yobHuKhTUyuH2rJZeiZU" alt=""><figcaption></figcaption></figure>

### Setup Validasi

Pastikan anda sudah membuat formulir dan menambahkan bidang/field pada formulir seperti gambar berikut ini:

<figure><img src="/files/inS66MO3VvlVAoSenJ4t" alt=""><figcaption></figcaption></figure>

Pilih dan klik tombol setup komponen, Akan muncul bidang setup form yang berfungsi untuk mengkonfigurasi form field yang akan dibuat

<figure><img src="/files/pGr5IrgUX2wMROXog9zz" alt=""><figcaption></figcaption></figure>

Pilih dan sesuaikan jenis form yang akan digunakan (form standard, waktu, media, kamera, lokasi, dinamis, built-in, external internal data). Jika sudah klik/pilih next untuk masuk ketahapan validasi

<figure><img src="/files/rawRqK19jWL2p9AqMCob" alt=""><figcaption></figcaption></figure>

Tentukan jenis validasi yang akan diberikan pada form yang dibuat. Terdapat 6 opsi pilihan validasi diantaranya adalah

1. Required : Jika diaktifkaan mengartikan bahwa field tidak boleh kosong dan wajib berisi data
2. Text : jika diaktifkan anda dapat mengatur/menentukan minimal dan maksimal panjang text
3. Angka : jika diaktifkan anda dapat mengatur/menentukan minimal dan maksimal banyaknya angka
4. Gambar : jika diaktifkan anda dapat mengatur maksimal size gambar yang dapat diupload
5. File : jika diaktifkan anda dapat mengatur size maksimal file dan format file yang boleh diupload
6. Validasi Eksternal : jika diaktifkan anda dapat mengatur validasi berdasarkan endpoint yang mengembalikan respon json dengan format contoh: {'status':true/false,'msg':'Berhasil'}


# Process

![](/files/l3U83FXlR2nVnrw4cmpd)Dalam bidang proses data terdapat beberapa pilihan yang dapat dilakukan konfigurasi diantaranya adalah

1. UpperCase
2. String Replacer
3. Image Metadata
4. NLP
5. Data Dukcapil

### Setup Proses Data

Pastikan anda sudah membuat formulir dan menambahkan bidang/field pada formulir seperti gambar berikut ini:

<figure><img src="/files/dHna5rW9eTNWyqEAei1Y" alt=""><figcaption></figcaption></figure>

Pilih dan klik tombol setup komponen, Akan muncul bidang setup form yang berfungsi untuk mengkonfigurasi form field yang akan dibuat

<figure><img src="/files/Ry4AZdQdZ8Ilr57em99U" alt=""><figcaption></figcaption></figure>

Pilih dan sesuaikan jenis form yang akan digunakan (form standard, waktu, media, kamera, lokasi, dinamis, built-in, external internal data). Jika sudah klik/pilih next untuk masuk ketahapan validasi

<figure><img src="/files/SxQx7lxRpEr2viYZcor8" alt=""><figcaption></figcaption></figure>

Terdapat 6 opsi pilihan validasi, sesuaikan berdasarkan kebutuhan dan lanjut klik/pilih next. kemudian akan diarahkan pada bidang proses data

<figure><img src="/files/l3U83FXlR2nVnrw4cmpd" alt=""><figcaption></figcaption></figure>

Berikut adalah penjelasan terkait konfigurasi yang ada pada bidang proses data:

1. UpperCase : jika diaktifkan inputan text pada field yang ditentukan akan berubah menjadi huruf besar ketika disimpan
2. String Replacer : jika diaktifkan dan dilakukan konfigurasi text akan berubah berdasarkan text yang sudah ditentukan (string\_input:replace\_with\_string)
3. Image Metadata : jika diaktifkan ketika form disimpan maka akan mengambil metadata image tersebut dalam bentuk json
4. NLP : jika diaktifkan setiap Text yang di input akan di ekstrak untuk mendapatkan: Nama Lokasi, Orang, Organisasi
5. Data Dukcapil : jika diaktifkan ketika menyimpan data maka akan mengambil data berdasarkan field yang sudah ditentukan berdasarkan data yang didapatkan dari dukcapil

Sesuaikan konfigurasi berdasarkan kebutuhan, jika sudah klik save/simpan


# Basic


# Htmlview

Widget HTMLView adalah widget yang digunakan untuk menampilkan dan merender konten HTML.

### Menggunakan Htmlview

Pastikan anda sudah masuk ke halaman *"backoffice"* layanan yang sedang anda buat/kembangkan

<figure><img src="/files/7pNtezpwdZn9xUbP5S7F" alt=""><figcaption></figcaption></figure>

Pilih/klik tambah widget yang ada dipojok kanan

<figure><img src="/files/qPoWTFnm0tqA84mNs4GT" alt=""><figcaption></figcaption></figure>

Pada tab-menu basic klik widget Htmlview untuk menggunakan widget

<figure><img src="/files/dAGz35ZJjB3zqOGSAe48" alt=""><figcaption></figcaption></figure>

Lakukan konfigurasi dengan cara klik simbol gear pada widget

<figure><img src="/files/s2CqOLpw5uwwK7F1HC38" alt=""><figcaption></figcaption></figure>

Terdapat editor html pada widget HtmlView, anda dapat langsung membuat konten pada editor tersebut yang berisikan text dan gambar


# Text

Widget Text adalah widget yang digunakan untuk menampilkan text pada halaman backend/backoffice.

### Menggunakan Text

Pastikan anda sudah masuk ke halaman *"backoffice"* layanan yang sedang anda buat/kembangkan

<figure><img src="/files/t2d7QtlvorqLNaEGwVks" alt=""><figcaption></figcaption></figure>

Pilih/klik tambah widget yang ada dipojok kanan

<figure><img src="/files/zilhVVrKOsquYXG3tupW" alt=""><figcaption></figcaption></figure>

Pada tab-menu basic klik widget Text untuk menggunakan widget

<figure><img src="/files/nG48gDdCwF3p5jWwickC" alt=""><figcaption></figcaption></figure>

Lakukan konfigurasi dengan cara klik simbol gear pada widget

<figure><img src="/files/1SCmI0nr7givOj8AyRIQ" alt=""><figcaption></figcaption></figure>

Isi kolom konfigurasi, sesuaikan penggunaan berdasarkan kebutuhan pembuatan/pengembangan layanan yang sedang dibuat

<figure><img src="/files/3c66MhxG7uqNiwt51JWO" alt=""><figcaption></figcaption></figure>


# Image

Widget image adalah widget yang digunakan untuk menampilkan gambar atau grafik pada halaman backend/backoffice.

### Menggunakan Image

Pastikan anda sudah masuk ke halaman *"backoffice"* layanan yang sedang anda buat/kembangkan

<figure><img src="/files/X5GsghgHYsBoMfBZr85H" alt=""><figcaption></figcaption></figure>

Pilih/klik tambah widget yang ada dipojok kanan

<figure><img src="/files/NPNYiPm14my6EZDJwxct" alt=""><figcaption></figcaption></figure>

Pada tab-menu basic klik widget Image untuk menggunakan widget

<figure><img src="/files/2k2cUdjtsBEeqixyxzxc" alt=""><figcaption></figcaption></figure>

Lakukan konfigurasi dengan cara klik simbol gear pada widget

<figure><img src="/files/hDP0kZthySwG09945FO5" alt=""><figcaption></figcaption></figure>

Isi kolom konfigurasi, sesuaikan penggunaan berdasarkan kebutuhan pembuatan/pengembangan layanan yang sedang dibuat

<figure><img src="/files/FzEVyiYsjLlZEP6cMS1C" alt=""><figcaption></figcaption></figure>


# Webview

Widget WebView adalah widget yang digunakan untuk menampilkan dan merender halaman web atau konten web dalam pada halaman backend/backoffice.

### Menggunakan Webview

Pastikan anda sudah masuk ke halaman *"backoffice"* layanan yang sedang anda buat/kembangkan

<figure><img src="/files/ILbWfXY6PKhj52leWukN" alt=""><figcaption></figcaption></figure>

Pilih/klik tambah widget yang ada dipojok kanan

<figure><img src="/files/u5RlXTmH1s23cGzEv3TB" alt=""><figcaption></figcaption></figure>

Pada tab-menu basic klik widget Webview untuk menggunakan widget

<figure><img src="/files/gGAfzmz9TkXZWahikAp6" alt=""><figcaption></figcaption></figure>

Lakukan konfigurasi dengan cara klik simbol gear pada widget

<figure><img src="/files/rZcaCWxXkTX3P8AEECNm" alt=""><figcaption></figcaption></figure>

Isi kolom konfigurasi widget, sesuaikan penggunaan berdasarkan kebutuhan pembuatan/pengembangan layanan yang sedang dibuat

<figure><img src="/files/6wYDmJMyKYBAcrcCFxA1" alt=""><figcaption></figcaption></figure>


# Data


# Data Master

Anda dapat membuat data master pada backoffice, biasanya data master digunakan untuk menyimpan data referensi yang digunakan pada layanan yang sedang dibuat/dikembangkan atau untuk menyediakan nilai default.

### Membuat data master

Untuk membuat data master pilih/klik tambah widget

<figure><img src="/files/osUGyQ37CyWvprmqrjAP" alt=""><figcaption></figcaption></figure>

Pada bagian tab-menu data pilih New Form

<figure><img src="/files/KGMm7y7kiCxy199SZris" alt=""><figcaption></figcaption></figure>

Lakukan konfigurasi dengan cara klik icon gear bertuliskan setup form pada widget new form

<figure><img src="/files/9TNHcBma8cjrdRfxnAWm" alt=""><figcaption></figcaption></figure>

klik/pilih tambah bidang

<figure><img src="/files/3VttHDhw9niXpEjenzMJ" alt=""><figcaption></figcaption></figure>

Akan muncul bidang field yang ditambahkan

Klik bidang yang baru saja ditambahkan

Pada kolom label isikan nama kolom yang akan dibuat

Jika sudah, lanjut pilih dan klik tombol setup komponen

Akan muncul bidang setup form yang berfungsi untuk mengkonfigurasi form field yang akan dibuat

<figure><img src="/files/FI0dtD1TpW5MjdQfLEJX" alt=""><figcaption></figcaption></figure>

Pilih dan sesuaikan jenis form yang akan digunakan (form standard, waktu, media, kamera, lokasi, dinamis, built-in, external internal data)

Ulangi proses diatas untuh menambahkan bidang baru dan lakukan konfigurasi berdasarkan jenis field yang dipilih


# Data Frontend

Anda dapat menampilkan dan melakukan management data dengan data yang berasal dari formulir frontend

Berikut adalah cara menggunakan dan konfigurasi widget untuk menampilkan data yang berasal dari formulir frontend:

Pilih/klik tambah widget

<figure><img src="/files/9IDuBy0Jd9JESwKZS4Vt" alt=""><figcaption></figcaption></figure>

Pada bagian tab-menu data pilih formulir yang berasal dari frontend ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc42.png) dalam hal ini nama formulir yang berasal dari frontend adalah data demo

Lakukan konfigurasi dengan cara klik icon gear ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc43.png)

Akan muncul bidang konfigurasi, sesuaikan bidang/kolom ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc44.png)

Pada kolom titel isi dengan title yang anda inginkan

Pada kolom grid title pilih field yang akan dijadikan title pada grid

Pada kolom grid image pilih field image yang akan dimunculkan pada grid

Pada kolom grid description klik add grid description untuk menambahkan deskripsi pada tampilan grid ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc45.png)

Sesuaikan kolom berdasarkan deskripsi yang akan ditentukan ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc46.png)

Pada bagian default view anda dapat menentukan apakah apakah tampilan akan berbentuk grid/table

Pilih/klik save untuk menyimpan konfigurasi

jangan lupa klik pratinjau untuk melihat hasil yang sudah dikonfigurasi

Berikut adalah contoh tampilan grid dengan menampilkan data yang berasal dari frontend ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc47.png)


# Chart


# Counter

Widget chart berjenis counter dapat menyajikan informasi numerik secara langsung (counter) bersamaan dengan visualisasi grafik.

Untuk menggunakan chart counter pilih dan klik tambah widget, kemudian klik tab-menu chart dan pilih counter

<figure><img src="/files/9pzlVSh9z3KOuJ7DAQZ9" alt=""><figcaption></figcaption></figure>

Klik/pilih icon gear untuk melakukan konfigurasi pada counter

<figure><img src="/files/P1b13gXXlvR4yKERHHWr" alt=""><figcaption></figcaption></figure>

Berikut adalah tampilan bidang konfigurasi pada widget counter

<figure><img src="/files/QJbuMgzvsWzYqwuX4yYv" alt=""><figcaption></figcaption></figure>

Sesuaikan isian bidang konfigurasi dengan data yang akan ditampilakan

Berikut adalah tampilan dashboard backend yang menggunakan widget chart berjenis counter ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc51.png)


# Bar

Widget chart berjenis Bar / Grafik batang memungkinkan pengguna untuk dengan cepat membandingkan nilai-nilai antara kategori atau item yang berbeda. Panjang batang secara visual mewakili besar atau kecilnya suatu nilai.

Untuk menggunakan Widget chart berjenis Bar pilih dan klik tambah widget, kemudian klik tab-menu chart dan pilih bar

<figure><img src="/files/idKikMwO3PNR1XSq8a9N" alt=""><figcaption></figcaption></figure>

Klik/pilih icon gear untuk melakukan konfigurasi pada Widget chart berjenis Bar

<figure><img src="/files/lfB0HgqSYdccVgxPJFGC" alt=""><figcaption></figcaption></figure>

Berikut adalah tampilan bidang konfigurasi pada widget Widget chart berjenis Bar

<figure><img src="/files/2VzsH7yFWbzTfnm8SfWd" alt=""><figcaption></figcaption></figure>

Sesuaikan isian bidang konfigurasi dengan data yang akan ditampilkan

Berikut adalah tampilan dashboard backend yang menggunakan widget chart berjenis Bar ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc54.png)


# Line

Widget chart berjenis line, atau grafik garis, memberikan beberapa manfaat yang dapat meningkatkan pemahaman dan visualisasi data. Dengan menggunakan grafik garis, pengguna dapat dengan cepat mengidentifikasi pola dan perubahan dalam data.

Untuk menggunakan Widget chart berjenis Bar pilih dan klik tambah widget, kemudian klik tab-menu chart dan pilih line

<figure><img src="/files/PiZeYcCbgJFlWxzNnmH3" alt=""><figcaption></figcaption></figure>

Klik/pilih icon gear untuk melakukan konfigurasi pada Widget chart berjenis Line

<figure><img src="/files/ZlOrLqkhvFIimhyGh9kj" alt=""><figcaption></figcaption></figure>

Berikut adalah tampilan bidang konfigurasi pada widget chart berjenis Line

<figure><img src="/files/pZUTHoijMFmbypYRX0IR" alt=""><figcaption></figcaption></figure>

Sesuaikan isian bidang konfigurasi dengan data yang akan ditampilakan

Berikut adalah tampilan dashboard backend yang menggunakan widget chart berjenis Line ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc58.png)


# Pie

Widget chart pie, atau grafik lingkaran, memberikan beberapa manfaat yang dapat meningkatkan pemahaman dan visualisasi data. Grafik lingkaran secara visual memperlihatkan proporsi atau persentase relatif dari setiap bagian terhadap keseluruhan. Cocok untuk menyajikan komposisi atau distribusi data kategoris.

Untuk menggunakan Widget chart berjenis Pie pilih dan klik tambah widget, kemudian klik tab-menu chart dan pilih Pie

<figure><img src="/files/IMbfojdR69Cx8hn2YiTu" alt=""><figcaption></figcaption></figure>

Klik/pilih icon gear untuk melakukan konfigurasi pada Widget chart berjenis Pie

<figure><img src="/files/hpQFNg5zPrVYEHDzCPEF" alt=""><figcaption></figcaption></figure>

Berikut adalah tampilan bidang konfigurasi pada widget chart berjenis Pie

<figure><img src="/files/ZBn2q9HeX1cStgQYHnXw" alt=""><figcaption></figcaption></figure>

Sesuaikan isian bidang konfigurasi dengan data yang akan ditampilakan

Berikut adalah tampilan dashboard backend yang menggunakan widget chart berjenis Pie ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc62.png)


# Tree

Widget chart tree, atau grafik pohon, menawarkan beberapa manfaat yang dapat meningkatkan pemahaman dan visualisasi data. Grafik pohon menyajikan data dalam bentuk hierarki visual dengan simpul dan cabang yang jelas. Memudahkan pengguna untuk memahami dan menjelajahi hubungan hierarkis antara kategori atau item dalam data.

Untuk menggunakan Widget chart berjenis Tree pilih dan klik tambah widget, kemudian klik tab-menu chart dan pilih Tree

<figure><img src="/files/PkeP4CTQoUTnk5l6uOeu" alt=""><figcaption></figcaption></figure>

Klik/pilih icon gear untuk melakukan konfigurasi pada Widget chart berjenis Tree

<figure><img src="/files/UaCSIQJArEcykGCPnHua" alt=""><figcaption></figcaption></figure>

Berikut adalah tampilan bidang konfigurasi pada widget chart berjenis Tre

<figure><img src="/files/pfJNgDLFuvEDJeQlDvLP" alt=""><figcaption></figcaption></figure>

Sesuaikan isian bidang konfigurasi dengan data yang akan ditampilkan

Berikut adalah tampilan dashboard backend yang menggunakan widget chart berjenis Tree ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc66.png)


# Filter

Widget Filter data memungkinkan pengguna untuk fokus pada subset data tertentu atau rentang waktu tertentu yang relevan dengan kebutuhan mereka. Memungkinkan pengguna untuk fokus pada subset data tertentu atau rentang waktu tertentu yang relevan dengan kebutuhan. Pengguna juga dapat mengatur filter untuk menyaring data yang ditampilkan dalam grafik.

Untuk menggunakan Widget Filter pilih dan klik tambah widget, kemudian klik tab-menu chart dan pilih Filter

<figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2016.49.40%20(4).jpg" alt=""><figcaption></figcaption></figure>

Klik/pilih icon gear untuk melakukan konfigurasi pada Widget Filter

<figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2017.24.42.jpg" alt=""><figcaption></figcaption></figure>

Berikut adalah tampilan bidang konfigurasi pada widget Filter

<figure><img src="https://github.com/QTN-DEV/quantumbyte-doc/blob/main/.gitbook/assets/Screen%20Shot%202024-06-06%20at%2017.25.17.jpg" alt=""><figcaption></figcaption></figure>

Sesuaikan isian bidang konfigurasi dengan data yang akan ditampilkan

Berikut adalah tampilan dashboard backend yang menggunakan widget Filter dengan berbagai tipe filter:

1. Filter Select

   <figure><img src="/files/hfnbuPvvj86A6c99PJtX" alt=""><figcaption></figcaption></figure>
2. Filter Waktu

   <figure><img src="/files/OL4aih84RbIhY069RU5j" alt=""><figcaption></figcaption></figure>
3. Filter Interval

   <figure><img src="/files/IyNiSD6szLYIDTqEATON" alt=""><figcaption></figcaption></figure>


# List

Widget chart List memberikan representasi visual yang jelas dan terstruktur dari data dalam bentuk daftar, yang membantu pengguna dalam memahami, menganalisis, dan memanfaatkan data dengan lebih efektif.

Untuk menggunakan Widget chart berjenis List pilih dan klik tambah widget, kemudian klik tab-menu chart dan pilih List

<figure><img src="/files/pjdhaWbJZSUg3SWhbGRt" alt=""><figcaption></figcaption></figure>

Klik/pilih icon gear untuk melakukan konfigurasi pada Widget chart berjenis List

<figure><img src="/files/KUoquLd5GolU5AkOfbV2" alt=""><figcaption></figcaption></figure>

Berikut adalah tampilan bidang konfigurasi pada widget chart berjenis List

<figure><img src="/files/0ucicknIiMSI3trw7TRM" alt=""><figcaption></figcaption></figure>

Sesuaikan isian bidang konfigurasi dengan data yang akan ditampilkan

Berikut adalah tampilan dashboard backend yang menggunakan widget chart berjenis List ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/backoffice/doc76.png)


# Integrasi API


# Memulai

Pada halaman pengembang, tersedia bidang yang memungkinkan integrasi. Melalui proses integrasi API.

### Langkah Awal

Pastikan anda sudah membuat layanan berbasis formulir pada halaman developer.\\

<figure><img src="/files/ZUt1ja7qtx5HBTLD17zo" alt=""><figcaption></figcaption></figure>

Klik menu Integrasi API pada halaman developer untuk masuk ke halaman Integrasi API.

Klik tombol **API Data Formulir** dan anda akan melihat API yang terhubung dengan Formulir di Builder.\\

<figure><img src="/files/lNI0sSZJMml1YzEAwwyD" alt=""><figcaption></figcaption></figure>

Terdapat 2 Base URL untuk Development & Production:

Base URL:

* **Development**: https\://\[\[base\_url]]/ext/dev
* **Production**: https\:/\[\[base\_url]]/ext/pub

*Base URL production dapat digunakan ketika layanan telah **publish**.*

Anda juga dapat mengunduh file *postman collection* berformat .json

<figure><img src="/files/VrUjnFF1NPP5SZ9bZGSi" alt=""><figcaption></figcaption></figure>


# API Formulir


# Read Data

Untuk melakukan Read Data melalui API masuk ke tab-menu Integrasi API.

Pada bidang integrasi API pilih/klik '\[GET] /list' seperti gambar berikut ini :

<figure><img src="/files/dGYiPEuAgoB4oSMIfWaI" alt=""><figcaption></figcaption></figure>

Akan muncul informasi dokumentasi penggunaan Endpoint '\[GET] /list'

Berikut adalah penjelasan dari setiap bagian:

**- Methods:** Hanya dapat diakses menggunakan metode GET.

**- Headers:** Memerlukan dua header, yaitu 'access\_key' dan 'app\_key', yang harus disertakan dengan nilai kunci akses masing-masing.

**- Info:** Menyertakan informasi tambahan seperti ID formulir (formId) dan ID aplikasi (appId).

**- Url:** Struktur URL untuk mengakses endpoint ini, termasuk placeholder untuk 'base\_url', 'appId', dan 'formId'.

**- Filter** (opsional): Filter data yang opsional, dengan contoh filter dapat dilihat di Catatan Skema filter.

**- Sort (opsional):** Pengurutan data yang opsional, dengan contoh pengurutan dapat dilihat di Catatan Skema sort.

**- Search (opsional):** Pencarian data yang opsional, dalam contoh ini, ditentukan bahwa query pencarian adalah "\*".

**- Pagination (opsional):** Pengaturan halaman yang opsional, memungkinkan untuk mengatur baris awal dan akhir untuk membatasi jumlah data yang dikembalikan.

Berikut adalah contoh penggunaan skema filter

```json
{
  "nama_field":
  {
    "filterType":"text",
    "type":"equals",
    "filter":"filter_value"
  }
} 
```

nama\_field = field pada formulir, list nama field dapat di lihat di "Daftar Semua Fields"

filterType = jenis filter data dapat berupa (text/number/date/set)

type = mode filter berdasarkan dengan jenis filter:

```
jika filterType (text) maka type (exists/notExists/equals/notEqual/contains/notContains/startsWith/endsWith)
jika filterType (number) maka type (equals/notEqual/greaterThan/greaterThanOrEqual/lessThan/lessThanOrEqual/inRange)
jika filterType (date) maka type (equals/notEqual/greaterThan/greaterThanOrEqual/lessThan/lessThanOrEqual/inRange)
jika filterType (set) maka type (array)
```

filter = value yang di filter:

```
jika filterType=number dan type=inRange harap gunakan filter & filterTo
jika filterType=date dan type=inRange harap gunakan dateFrom & dateTo
jika filterType=set dan type=array harap gunakan values dan isi value dalam format array []
```

Berikut adalah contoh detail penggunaan Filter Query

```json
#Contoh FilterType "text" dan type "equals":
{
  "status":{
    "filterType":"text",
    "type":"equals",
    "filter":"SELESAI"
  }
} 

#Contoh FilterType "number" dan type "greaterThanOrEqual":
{
  "umur":{
    "filterType":"number",
    "type":"greaterThanOrEqual",
    "filter":1
  }
} 

#Contoh FilterType "number" dan type "inRange":
{
  "umur":{
    "filterType":"number",
    "type":"inRange",
    "filter":1,
    "filterTo":10
  }
} 

#Contoh FilterType "date" dan type "greaterThanOrEqual":
{
  "_meta.createdAt":{
    "filterType":"date",
    "type":"greaterThan",
    "dateFrom":"2022-02-27"
  }
} 

#Contoh FilterType "date" dan type "inRange":
{
  "_meta.createdAt":{
    "filterType":"date",
    "type":"inRange",
    "dateFrom":"2022-02-27",
    "dateTo":"2022-03-04"
  }
} 

#Contoh FilterType "set" dan type "array":
{
  "status":{
    "filterType":"set",
    "type":"array",
    "values":["SELESAI","DIPROSES"]
  }
} 

#Contoh Multiple Filter Fields:
{
  "status":{
    "filterType":"set",
    "type":"array",
    "values":["SELESAI","DIPROSES"]
  },
  "_meta.createdAt":{
    "filterType":"date",
    "type":"inRange",
    "dateFrom":"2022-02-27",
    "dateTo":"2022-03-04"
  },
  "umur":{
    "filterType":"number",
    "type":"inRange",
    "filter":1,
    "filterTo":10
  }
} 
```

Anda dapat melakukan pengujian API dengan cara mengunduh postman collection yang disediakan seperti pada gambar berikut ini: ![](https://github.com/QTN-DEV/quantumbyte-doc/blob/main/img/v1/integrasi/doc4.png)


# Update Data

Untuk melakukan Update Data melalui API masuk ke tab-menu Integrasi API.uan umum' :

Pada bidang integrasi API pilih/klik "\[POST] /update/{id}" seperti gambar berikut ini :

<figure><img src="/files/66MpyqoNbijdM5hxbO2T" alt=""><figcaption></figcaption></figure>

Akan muncul informasi dokumentasi penggunaan Endpoint "\[POST] /update/{id}"

Berikut adalah penjelasan dari setiap bagian:

**- Methods:** Endpoint hanya dapat diakses menggunakan metode POST.

**- Headers:** Diperlukan dua header, yaitu access\_key dan app\_key, yang harus disertakan dengan nilai kunci akses masing-masing.

**- Info:** Menyertakan informasi tambahan seperti ID formulir (formId) dan ID aplikasi (appId), yang mungkin berguna untuk mengidentifikasi sumber data yang diperbarui.

Terdapat 4 Tahapan dalam melakukan update data

1. **update/step-1**

   Langkah pertama dari proses pembaruan formulir

   * URL by Id:

     Ini adalah URL yang digunakan untuk melakukan pembaruan data dengan menggunakan ID tertentu. Di dalam URL, terdapat placeholder yang akan diganti dengan nilai yang sesuai saat melakukan permintaan. Placeholder tersebut adalah:

     * {base\_url}: Base URL dari API.
     * {appId}: ID aplikasi yang mungkin diperlukan untuk mengidentifikasi aplikasi yang sedang digunakan.
     * {formId}: ID formulir atau pengaduan yang ingin diperbarui.
     * {id}: ID unik dari data yang ingin diperbarui.
     * Contoh URL: URL ini akan digunakan untuk memperbarui langkah pertama dari formulir atau pengaduan dengan ID 789.

       ```bash
       {base_url}/123456/form123/update/step-1/789
       ```
   * URL by Query:

     Ini adalah URL alternatif yang memungkinkan Anda melakukan pembaruan data dengan menggunakan kueri tertentu. Anda dapat menggunakan kueri untuk memfilter data yang ingin diperbarui berdasarkan nilai tertentu pada bidang tertentu.

     * Contoh kueri: Dalam contoh ini, Anda akan menggunakan kueri untuk memfilter data yang memiliki nilai value pada bidang field.

       ```bash
       {base_url}/123456/form123/update/step-1/query?q=field:value
       ```
   * Body:

     Ini adalah bagian dari permintaan yang berisi data yang ingin diperbarui. Dalam langkah pertama ini, ada tiga bidang yang dapat diperbarui:

     * judul: Sebuah input yang mewakili judul dari formulir atau pengaduan.
     * deskripsi: Sebuah textarea yang mewakili deskripsi atau rincian lebih lanjut tentang formulir atau pengaduan.
     * foto: Sebuah bidang yang mungkin berupa foto yang dapat diambil menggunakan kamera perangkat atau dipilih dari galeri.
2. **update/step-2**

   Langkah kedua dari proses pembaruan formulir

   * URL by Id:

     URL yang digunakan untuk melakukan pembaruan data dengan menggunakan ID tertentu. Di dalam URL, terdapat placeholder yang akan diganti dengan nilai yang sesuai saat melakukan permintaan. Placeholder tersebut adalah:

     * {base\_url}: Base URL dari API.
     * {appId}: ID aplikasi yang mungkin diperlukan untuk mengidentifikasi aplikasi yang sedang digunakan.
     * {formId}: ID formulir atau pengaduan yang ingin diperbarui.
     * {id}: ID unik dari data yang ingin diperbarui.
     * Contoh URL: URL ini akan digunakan untuk memperbarui langkah pertama dari formulir atau pengaduan dengan ID 789.

       ```bash
       {base_url}/123456/form123/update/step-2/789
       ```
   * URL by Query:

     Ini adalah URL alternatif yang memungkinkan Anda melakukan pembaruan data dengan menggunakan kueri tertentu. Anda dapat menggunakan kueri untuk memfilter data yang ingin diperbarui berdasarkan nilai tertentu pada bidang tertentu.

     * Contoh kueri: Dalam contoh ini, Anda akan menggunakan kueri untuk memfilter data yang memiliki nilai value pada bidang field.

       ```bash
       {base_url}/123456/form123/update/step-2/query?q=field:value
       ```
   * Body:

     Ini adalah bagian dari permintaan yang berisi data yang ingin diperbarui. Dalam langkah kedua ini, hanya ada satu bidang yang dapat diperbarui:

     * status: Sebuah input radio yang mewakili status dari formulir atau pengaduan. Status yang mungkin adalah PENDING, PROSES, DITOLAK, atau SELESAI.
3. **update/step-pengiriman**

   Langkah ketiga dari step pembaharuan formulir adalah pengiriman

   * URL by Id:

     URL yang digunakan untuk melakukan pembaruan data dengan menggunakan ID tertentu. Di dalam URL, terdapat placeholder yang akan diganti dengan nilai yang sesuai saat melakukan permintaan. Placeholder tersebut adalah:

     * {base\_url}: Base URL dari API.
     * {appId}: ID aplikasi yang mungkin diperlukan untuk mengidentifikasi aplikasi yang sedang digunakan.
     * {formId}: ID formulir atau pengaduan yang ingin diperbarui.
     * {id}: ID unik dari data yang ingin diperbarui.
     * Contoh URL: URL ini akan digunakan untuk memperbarui langkah pertama dari formulir atau pengaduan dengan ID 789.

       ```bash
       {base_url}/123456/form123/update/step-pengiriman/789
       ```
   * URL by Query:

     Ini adalah URL alternatif yang memungkinkan Anda melakukan pembaruan data dengan menggunakan kueri tertentu. Anda dapat menggunakan kueri untuk memfilter data yang ingin diperbarui berdasarkan nilai tertentu pada bidang tertentu.

     * Contoh kueri: Dalam contoh ini, Anda akan menggunakan kueri untuk memfilter data yang memiliki nilai value pada bidang field.

       ```bash
       {base_url}/123456/form123/update/step-pengiriman/query?q=field:value
       ```
   * Body:

     Permintaan yang berisi data yang ingin diperbarui. Dalam langkah ketiga ini, terdapat dua bidang yang dapat diperbarui:

     * no\_resi: Sebuah bidang untuk mengisi nomor resi atau nomor pelacakan pengiriman.
     * catatan: Sebuah bidang untuk mengisi catatan tambahan atau instruksi terkait pengiriman.
4. **update/step-pembayaran**

   Langkah keempat dari step pembaharuan formulir adalah pembayaran

   * URL by Id:

     URL yang digunakan untuk melakukan pembaruan data dengan menggunakan ID tertentu. Placeholder seperti {base\_url}, {appId}, {formId}, dan {id}. Placeholder tersebut adalah:

     * {base\_url}: Base URL dari API.
     * {appId}: ID aplikasi yang mungkin diperlukan untuk mengidentifikasi aplikasi yang sedang digunakan.
     * {formId}: ID formulir atau pengaduan yang ingin diperbarui.
     * {id}: ID unik dari data yang ingin diperbarui.
     * Contoh URL: URL ini akan digunakan untuk memperbarui langkah pertama dari formulir atau pengaduan dengan ID 789.

       ```bash
       {base_url}/123456/form123/update/step-pembayaran/789
       ```
   * URL by Query:

     Ini adalah URL alternatif yang memungkinkan Anda melakukan pembaruan data dengan menggunakan kueri tertentu. Anda dapat menggunakan kueri untuk memfilter data yang ingin diperbarui berdasarkan nilai tertentu pada bidang tertentu.

     * Contoh kueri: Dalam contoh ini, Anda akan menggunakan kueri untuk memfilter data yang memiliki nilai value pada bidang field.

       ```bash
       {base_url}/123456/form123/update/step-pembayaran/query?q=field:value
       ```
   * Body:

     Bagian ini berisi data yang ingin diperbarui dalam permintaan. Dalam langkah pembayaran ini, terdapat dua bidang yang dapat diperbarui:

     * va: Sebuah bidang yang digunakan untuk mengisi nomor virtual account jika metode pembayaran adalah VA (Virtual Account) dan gateway pembayaran di sisi pengguna.
     * catatan: Sebuah bidang yang digunakan untuk mengisi catatan tambahan atau instruksi terkait dengan pembayaran.

Jadi, ketika melakukan permintaan pembaruan dengan menggunakan URL atau kueri tertentu, Anda juga harus menyertakan data yang ingin diperbarui dalam format yang ditentukan di dalam body permintaan.




---

[Next Page](/llms-full.txt/1)

