☰

Welcome to Craftlo Documentation

Thank you for purchasing Craftlo – Laravel Visual Data, Form Builder & API Manager. This documentation will guide you through installation, configuration, and the core features available in Craftlo.

Craftlo provides a visual way to create and manage custom data modules, build forms, collect submissions, connect external APIs, and automatically expose configurable REST APIs from your Laravel application.

Server Requirements

Craftlo is built with Laravel 13 and requires PHP 8.4 or higher. The installer will automatically check whether your server meets the required environment and extension requirements.

If you are unsure whether your hosting environment meets these requirements, contact your hosting provider for assistance.

  • PHP 8.4 or higher
  • BCMath PHP Extension
  • Ctype PHP Extension
  • Fileinfo PHP Extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • CURL PHP Extension

Installation

Before installing Craftlo, you will need to create a new, empty database. If you are already familiar with creating MySQL databases, you may skip this step.

This guide uses a cPanel-based server as a reference. The general installation process is similar across most hosting environments.


Creating a New Database

Sign in to your server and locate the MySQL Database Wizard option from your cPanel dashboard.

cPanel MySQL Database Wizard

Enter the database name and click Next Step to create the database.

Create Database

Provide the required details to create the database user. Once entered, click Next Step to create the user.
Note: Make sure you save these database credentials somewhere safe.

Create Database User

Grant the newly created database user the required privileges and permissions.

Database User Privileges

Uploading Files

Once the database has been created, upload the contents of the main_files folder to your domain's web root directory. Depending on your hosting environment, this directory may be named public_html, html, example.com, or something similar.

Note: Some operating systems hide dotfiles by default. Before uploading the files, make sure your file explorer is configured to show hidden files.

Note: Make sure the .env and .htaccess files are uploaded correctly.


Installation Wizard

Navigate to your website address to access the Craftlo installation wizard. To launch the installer, visit: yourdomain.com/install

The first screen displayed by the installer is the Welcome screen.

Craftlo Installation Wizard

Note: If you cannot access the website using yourdomain.com/install but can access it using yourdomain.com/index.php/install, Apache mod_rewrite may not be installed or enabled on your server.


System Requirements

After clicking the Check Requirement button, the installer will display the System Requirements step.

System Requirements

Directory Permissions

After the required PHP extensions have been verified, the installer will check the permissions of the required system directories.

Directory Permissions

To set the required permissions, open your terminal and run the permission command shown by the installer, for example: sudo chmod 777 directory_name. You can also change permissions manually through your hosting control panel or file manager.


Environment Settings

Enter the required environment settings for your installation.

Environment Settings

Database

Enter the database credentials you created earlier.

Database Settings

Application

You can configure Pusher and mail settings during installation, or skip these settings and configure them later.

Application Settings

Installation Finished

Once the installation is complete, the installer will provide the default login credentials. Be sure to copy and store them securely. It is recommended that you change the default password after your first login.

Installation Completed

Default Superadmin Login

Email: superadmin@example.com

Password: 123456789

Google Login

To configure Google Login, you will need a Google Client ID and Client Secret. These credentials can be created from the Google Developers Console. http://console.developers.google.com/

Google Login Configuration

From the top navigation bar, click Create Credentials and select OAuth client ID.

Google OAuth Client ID

Select Web Application as the application type and enter the required information, including the application name, authorized redirect URL, and authorized origin URL.

Google Web Application

Make sure the correct redirect URL is configured as the callback URL. You can find the required redirect URL by logging in as Super Admin, navigating to Module Settings, and opening Google Login Settings.

You can also use the following format: https://your.domain/google-callback

After creating the OAuth credentials, Google will provide your Client ID and Secret Key. Store these credentials securely.

Facebook Login

To configure Facebook Login, you will need a Facebook App ID and Secret Key. These credentials can be created from the Facebook Developers Console.

https://developers.facebook.com/

Create App

Facebook Create App

Select Use Case

Facebook Use Case

Connect to your business portfolio.

Facebook Business Portfolio

Review the requirements for business verification.

Facebook Business Verification

Review the application overview.

Facebook App Overview

Once your application is created, navigate to Basic and enter the required application details and verification information.

Craftlo also allows you to create custom pages such as Privacy Policy, Terms, and About Us. These pages can be created from the administration panel and their URLs can be used where required.

Facebook App Settings

Go to the Dashboard and enable Facebook Login authentication. If the option is not visible, check the available products under Products.

Facebook Login Authentication

Make sure the correct callback URL is configured. You can find the required redirect URL by logging in as Super Admin, navigating to Module Settings, and opening Facebook Login Settings.

You can also use: https://your.domain/facebook-callback

Facebook Callback URL

ReCaptcha

Visit the reCAPTCHA website and sign in with your Google account. You can access reCAPTCHA at: https://cloud.google.com/security/products/recaptcha/

Click Get Started and create a new site for reCAPTCHA.

ReCaptcha Setup

Enter the required details and submit the configuration. Once completed, you will receive your Secret Key and Site Key. Store these credentials securely.

ReCaptcha Keys

Usage Guide

This section explains the core workflows in Craftlo, including creating custom data modules, collecting submissions, managing records, connecting external APIs, and working with automatically generated REST APIs.


1. Creating and Managing CRUD Modules

Craftlo allows you to visually create custom data modules without manually writing database migrations or database schemas for each module.

Step-by-Step Creation:

  1. Navigate to Manage CRUD > Create CRUD from the main administrative sidebar.
  2. Basic Details: Enter a descriptive name for your module, such as Client Onboarding. Craftlo automatically generates a system slug such as client_onboarding for internal operations and permissions.
  3. Form Customization: Use the visual form builder to add and configure fields. Available field types include Short Text, Number, Email, Date, Textarea, Select, Radio Buttons, Checkboxes, File Uploads, References to other CRUD Modules, Multiple File Uploads, and E-Signature fields.
  4. Form Layout: Add Section Headings and Paragraph blocks to organize longer forms and improve their structure.
  5. Column Visibility: For each field, choose whether it should appear in the module's main records table.
  6. Save the configuration to create and deploy the module.

2. Setting Up Public Forms & Consent Rules

Any custom CRUD module can be made available as a public-facing form for collecting information without requiring users to log in.

  • Public Form URL: Each active CRUD module has its own sharing link. Use the Copy Link option to copy the URL.
  • reCAPTCHA Protection: Enable Google reCAPTCHA from the module settings to help protect public forms from automated submissions.
  • Submission Limits: Set a maximum number of public submissions allowed for a form.
  • Consent Checkbox: Add a consent checkbox to require users to agree to your privacy policy or Terms of Service before submitting a form.
  • Submission Information: Craftlo can store information such as the submitter's IP address, browser agent, and device type with public submissions.
    Note: IP Address and Device Details will only be saved if consent is enabled.

3. Managing Records & Exporting Data

Review submitted records, manage stored information, preview uploaded files, and export selected data for external use.

Managing Submissions:

  • Record Management: Open the records section of any module to view detailed records, edit information, or delete records according to the configured permissions.
  • File & Media Preview: Click uploaded files, documents, images, or e-signatures from the records table to preview them without leaving the current page.

Exporting Data:

  1. Click the Export CSV/Excel option from the records section of the selected module.
  2. Date Range: Select an optional Start Date and End Date to export a specific range, or select All Time Records.
  3. Column Selection: Select only the fields you want to include in the exported file. Unselected fields are excluded from the export.
  4. Formatted Output: Craftlo removes unnecessary markup from exported text. Uploaded files and attachments can also be included as clickable =HYPERLINK() cells in Excel exports.

4. Working with the API Manager

Craftlo can connect your data workflows with external APIs, applications, microservices, and development tools such as Postman.

  • Send Forms: Send structured form data to external API endpoints.
  • Receive Forms: Retrieve data from external APIs and display the results inside Craftlo.
  • JSON Data Mapping: Select the required root path from nested JSON responses and map returned objects into data records.
  • Automatic Form Prefill: When updating a record through a Receive Form, Craftlo can retrieve the remote API data and automatically populate the corresponding form fields.
  • Request Formats: Send requests using JSON, Form-URL-Encoded, or Multipart/Form-Data.
  • File Transfers: Send files using multipart requests or encode files using Base64 where required by the external API.
  • Custom Headers: Configure custom request headers such as Bearer Tokens, API Keys, authorization headers, and other custom values.

5. Automatic REST APIs & API Blueprints

Each CRUD module created in Craftlo can have its own configurable REST API for programmatic access to its data.

  • Automatic Endpoints: When a CRUD module is created, Craftlo can generate RESTful endpoints for List, View, Store, Update, and Delete operations.
  • Access Controls: Configure API access using authentication requirements, user role permissions, or public creation access where supported.
  • JSON Blueprints: Export API configuration as a .json blueprint and import it into another environment.
  • Postman Support: Export API configurations in a Postman-compatible format to test endpoints, parameters, headers, and request bodies.

If you need additional assistance with a feature or workflow that is not covered in this documentation, please contact support.

Frequently Asked Questions (FAQ)

Find answers to common questions about Craftlo and its core functionality.


Q: How does Craftlo store data for dynamically created forms?

A: Craftlo uses a structured master data system for dynamically created modules and their submissions. Instead of requiring a separate database table and migration for every dynamically created form, Craftlo stores the dynamic configuration and submission data within its structured data storage system.

Q: Can I extend or customize Craftlo for specific requirements?

A: Yes. Craftlo is built on the Laravel framework and follows a modular architecture. Developers can customize or extend the application according to their project requirements.

Q: How are permissions handled for dynamically created modules?

A: Craftlo automatically creates permission identifiers based on the module slug. For example, a CRUD module using the slug client_onboarding can use a permission such as manage_client_onboarding. API permissions follow a similar structure.

Q: Why does the Excel export use the =HYPERLINK() formula for uploaded files?

A: File attachments can otherwise appear as raw file paths in exported spreadsheets. Craftlo can generate native Excel =HYPERLINK() cells for uploaded files, allowing users to click the exported link to open or access the associated file.

Q: Can I move API configurations from a staging environment to production?

A: Yes. Craftlo includes JSON Blueprint export and import functionality. You can export an API configuration as a .json file and import the configuration into another Craftlo environment. API configurations can also be exported in a Postman-compatible format for testing.

Q: Does Craftlo support multiple languages?

A: Yes. Craftlo includes a visual JSON Language Manager in the administration panel and supports multiple languages, including English, Spanish, French, Portuguese, German, Italian, Japanese, and Arabic.

Support

For support, please contact us at codeonstring@gmail.com. We will respond as soon as possible, typically within one working day.

Change Log

Version 1.0.0 – Initial Release