# Try it out

<div style="text-align: justify;">

The demo instance gives you a fully functional VeloxFactory environment, pre-loaded with report templates and example data. Everything you can do in a production setup you can do here, with one exception: print tasks do not reach a real printer.

<div style="border: 2px dashed #b8bfcc; background: #f7f8fa; padding: 18px 16px; margin: 16px 0; text-align: center; color: #525E5A;">
<strong>Screenshot placeholder:</strong> <code>report-config.index.png</code><br>Report Config overview, the landing page after login, with context badges and thumbnails.
</div>

---

<h3 id="access" style="color: #203671; margin-top: 2.2em;">Access</h3>

<div style="border-left: 4px solid #5fc75d; background: #f6fdf6; padding: 10px 16px; margin: 16px 0; border-radius: 0 4px 4px 0;">
<strong>Demo URL:</strong> <a href="https://demo.veloxfactory.dev" target="_blank">demo.veloxfactory.dev</a><br>
<strong>Login:</strong> <code>demo@veloxfactory.dev</code> &nbsp;·&nbsp; <strong>Password:</strong> <code>demo</code>
</div>

The demo account has full access to all report data, Report Configs, History Records, Print Tasks, Mail Tasks, Connection Configs, Contexts, Common Resources, Printers, Mailers and Mail Templates. It can also generate and use API tokens. User management is not available.

---

<h3 id="guided-tour" style="color: #203671; margin-top: 2.2em;">Guided Tour</h3>

Work through these steps in order for a complete first look at VeloxFactory.

<h4 style="color: #203671; margin-top: 1.4em;">Step 1 - Browse the Report Configs</h4>

After logging in you land on the **Report Configs** list. This is the central workspace. Each card shows a thumbnail preview of the report and its context badge.

Use the search bar to filter by name, or use the dropdown filters to narrow by context or data adapter. Try typing part of a report name, the list updates instantly, no page reload.

<div style="border: 2px dashed #b8bfcc; background: #f7f8fa; padding: 18px 16px; margin: 16px 0; text-align: center; color: #525E5A;">
<strong>Screenshot placeholder:</strong> <code>report-config.index.filtered.png</code><br>Report Config overview with the filter bar open and active filter badges.
</div>

<h4 style="color: #203671; margin-top: 1.4em;">Step 2 - Explore a Report Config</h4>

Click any report to open its detail view. Here you can inspect:

- **Parameters** - the inputs the report expects at render time, with their data types and example values
- **Fields** - the data columns that populate the report body
- **Resources** - image assets embedded in the template (logos, icons)
- **Preview** - the rendered thumbnail, generated from the stored example values

Scroll through the sections to get a feel for what VeloxFactory extracts from a `.jrxml` file automatically on upload.

<div style="border: 2px dashed #b8bfcc; background: #f7f8fa; padding: 18px 16px; margin: 16px 0; text-align: center; color: #525E5A;">
<strong>Screenshot placeholder:</strong> <code>report-config.edit.png</code><br>Report Config edit view with parameters, fields and resources.
</div>

<h4 style="color: #203671; margin-top: 1.4em;">Step 3 - Render a Report from the Frontend</h4>

From within a Report Config, click the **Generate PDF** button. A dialog opens with pre-filled parameter values (taken from the example values stored on the config). You can edit any of them before rendering.

Select an output type, **Base64** is fine for a quick look, and click **Generate PDF**. VeloxFactory processes the request and shows the resulting PDF inline within seconds. No API call needed, no setup required.

<div style="border: 2px dashed #b8bfcc; background: #f7f8fa; padding: 18px 16px; margin: 16px 0; text-align: center; color: #525E5A;">
<strong>Screenshot placeholder:</strong> <code>generate-pdf.create.png</code><br>Generate PDF page with the parameter inputs and the output settings.
</div>

<h4 style="color: #203671; margin-top: 1.4em;">Step 4 - Check the History Record</h4>

Navigate to **Report History Records**. Your render from Step 3 appears at the top of the list (if you left `createHistoryRecord` enabled in the dialog). Open it to see the full log: the exact request payload, the API response, the rendered PDF, and a thumbnail.

From here you can download the PDF directly, trigger a reprint, which creates a new Print Task, or send the document by mail, which creates a new Mail Task.

<div style="border: 2px dashed #b8bfcc; background: #f7f8fa; padding: 18px 16px; margin: 16px 0; text-align: center; color: #525E5A;">
<strong>Screenshot placeholder:</strong> <code>report-history-record.show.png</code><br>Report History Record detail page with status, payload, PDF preview and the actions.
</div>

---

<h3 id="try-yourself" style="color: #203671; margin-top: 2.2em;">Try It Yourself</h3>

Once you have completed the tour, these are good next things to explore on your own.

<h4 style="color: #203671; margin-top: 1.4em;">Upload Your Own Template</h4>

If you have a `.jrxml` file designed in Jaspersoft Studio, you can upload it directly to the demo. Go to **Report Configs → Create**, attach the file, and let VeloxFactory analyse it. Within seconds, all parameters, fields, and resources are detected and listed automatically.

<div style="border-left: 4px solid #5fc75d; background: #f6fdf6; padding: 10px 16px; margin: 16px 0; border-radius: 0 4px 4px 0;">
ℹ️ <strong>Use Jaspersoft Studio 6.21.5.</strong> This is the version compatible with VeloxFactory's render engine. Download it from the <a href="https://community.jaspersoft.com/download-jaspersoft/community-edition/jaspersoft-studio_windows_6.x" target="_blank">Jaspersoft Community</a>. Reports created with a significantly newer version may use features the render engine does not support.
</div>

After upload, set any missing example values, upload resource files if needed, and click **Generate Preview** to produce a thumbnail. The report is then ready to render.

<h4 style="color: #203671; margin-top: 1.4em;">Call the API Directly</h4>

The demo account has API access enabled. To get a token, open the user menu in the top right corner and go to **Account Settings → API Tokens**, copy it immediately, it is only shown once.

With the token in hand, render any report with a single HTTP request:

```bash
curl -X POST \
  https://demo.veloxfactory.dev/api/v1/report-config/{reportName}/render \
  -H "Authorization: Bearer <your-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "outputType": "base64",
    "useExampleValues": true,
    "createHistoryRecord": true
  }'
```

Replace `{reportName}` with the `report_name` of any config from the list (visible in the detail view). The `useExampleValues` flag tells VeloxFactory to use the stored example values instead of requiring you to pass parameters and data manually, ideal for a first test.

The response contains the rendered PDF as a Base64 string and a trace ID you can look up in History Records.

<h4 style="color: #203671; margin-top: 1.4em;">Send a Report by Mail</h4>

Mailing is the second way a rendering leaves VeloxFactory. Two mailers are waiting for you under *Configuration*.

<table style="width: 100%; border-collapse: collapse;">
  <thead>
    <tr style="border-top: 1px solid #e6e8ef; border-bottom: 1px solid #e6e8ef;">
      <th style="text-align: left; padding: 6px 10px; white-space: nowrap;">Mailer</th>
      <th style="text-align: left; padding: 6px 10px;">What it is for</th>
    </tr>
  </thead>
  <tbody>
    <tr style="border-bottom: 1px solid #e6e8ef;">
      <td style="padding: 6px 10px; white-space: nowrap;"><strong>Demo Log Mailer</strong></td>
      <td style="padding: 6px 10px;">Writes every mail into the application log instead of sending it. Ready to use, and the safe way to follow the whole path from render to mail task without anything leaving the machine.</td>
    </tr>
    <tr>
      <td style="padding: 6px 10px; white-space: nowrap;"><strong>Demo SMTP Mailer</strong></td>
      <td style="padding: 6px 10px;">The starting point for a real send. It carries placeholder values, <code>smtp.example.com</code> on port 587 with scheme <code>smtp</code>, user and sender <code>change-me@example.com</code>, and it is inactive so nobody picks it before it works.</td>
    </tr>
  </tbody>
</table>

To send for real, open the SMTP mailer, replace host, port, credentials and sender with the data of a mailbox you own, send a test mail from the form, and set it active. Then write a **Mail Template** with a subject and a body. The editor has a placeholder button that lists every token the template can use.

With a mailer and a template in place, open any History Record and click **Mail**, or switch on *Send results via Mail* in the Output Settings of the Generate PDF page. The mail goes out with the PDF attached, and optionally with an xlsx export of the same data. Every mail shows up in the **Mail Queue** with its status, its recipients and the body that was actually sent.

<h4 style="color: #203671; margin-top: 1.4em;">Explore Print Tasks</h4>

When rendering via the frontend or API, enable the print task option and provide any printer name (e.g. `demo-printer`). VeloxFactory creates a `ReportPrintTask` record with status **pending**. Since no print service is connected to the demo, the task stays pending, but you can inspect the full record and see how status tracking works. Completed print tasks are purged automatically after a configurable retention period.

---

<h3 id="limits" style="color: #203671; margin-top: 2.2em;">Demo Limitations</h3>

<table style="width: 100%; border-collapse: collapse;">
  <thead>
    <tr style="border-top: 1px solid #e6e8ef; border-bottom: 1px solid #e6e8ef;">
      <th style="text-align: left; padding: 6px 10px;">What</th>
      <th style="text-align: left; padding: 6px 10px;">Behaviour in the demo</th>
    </tr>
  </thead>
  <tbody>
    <tr style="border-bottom: 1px solid #e6e8ef;">
      <td style="padding: 6px 10px;">Print tasks</td>
      <td style="padding: 6px 10px;">Created and traceable, but no real printer connected, tasks remain <strong>pending</strong>. Completed tasks are purged automatically.</td>
    </tr>
    <tr style="border-bottom: 1px solid #e6e8ef;">
      <td style="padding: 6px 10px;">Mail dispatch</td>
      <td style="padding: 6px 10px;">Mailers and Mail Templates can be created freely and a mailing can be configured end to end. The log mailer records the mail instead of sending it; whether a real mail is delivered depends on the SMTP account you enter, the demo has no mailbox of its own.</td>
    </tr>
    <tr style="border-bottom: 1px solid #e6e8ef;">
      <td style="padding: 6px 10px;">Live SQL connections</td>
      <td style="padding: 6px 10px;">Connection Configs can be created and tested, but no external databases are reachable from the demo environment.</td>
    </tr>
    <tr style="border-bottom: 1px solid #e6e8ef;">
      <td style="padding: 6px 10px;">User management</td>
      <td style="padding: 6px 10px;">The demo account does not have admin rights, user accounts and permissions cannot be managed.</td>
    </tr>
    <tr>
      <td style="padding: 6px 10px;">Data persistence</td>
      <td style="padding: 6px 10px;">Uploaded templates, history records, and other data may be reset periodically.</td>
    </tr>
  </tbody>
</table>

<div style="border-left: 4px solid #5fc75d; background: #f6fdf6; padding: 10px 16px; margin: 16px 0; border-radius: 0 4px 4px 0;">
ℹ️ <strong>Ready to go further?</strong> See <a href="/books/veloxfactory/page/meet-the-frontend">Meet the Frontend</a> for a full walkthrough of the UI, or <a href="/books/veloxfactory/page/meet-the-api">Meet the API</a> for complete API documentation.
</div>

</div>