PHPackages                             nova-bi/nova-databoards - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. nova-bi/nova-databoards

AbandonedArchivedLibrary[Admin Panels](/categories/admin)

nova-bi/nova-databoards
=======================

Powerful BI Databoards for Nova

0.4.0(5y ago)211242[12 issues](https://github.com/Nova-BI/nova-databoards/issues)MITPHPPHP &gt;=7.2.0

Since Jun 26Pushed 4y ago1 watchersCompare

[ Source](https://github.com/Nova-BI/nova-databoards)[ Packagist](https://packagist.org/packages/nova-bi/nova-databoards)[ RSS](/packages/nova-bi-nova-databoards/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (5)Dependencies (17)Versions (6)Used By (0)

This package has been replaced by

[![](docs/header.png)](docs/header.png)

Nova Databoards
===============

[](#nova-databoards)

Provides ready-to-use Analytics Databoards for Laravel Nova

[![Latest Stable Version](https://camo.githubusercontent.com/ac8708128433ce999e24df4c414d6007fdaa2329d7781e2d7b1e0536c716ada0/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617461626f617264732f76)](//packagist.org/packages/nova-bi/nova-databoards) [![Total Downloads](https://camo.githubusercontent.com/16a8397a9f741fec057706e9480f442fb826f7a146c094aa70fc615475dd6f1e/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617461626f617264732f646f776e6c6f616473)](//packagist.org/packages/nova-bi/nova-databoards) [![Latest Unstable Version](https://camo.githubusercontent.com/fbbbd96f0ed5f380a63e4ca8540aa708243683d91ec4b40f13024109cefe1d02/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617461626f617264732f762f756e737461626c65)](//packagist.org/packages/nova-bi/nova-databoards) [![License](https://camo.githubusercontent.com/9a0681e7aefd3162712397cdc27e748fbcdaf343eb0dd27ef71b0aba8310035d/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617461626f617264732f6c6963656e7365)](//packagist.org/packages/nova-bi/nova-databoards)

[![](docs/nova-databoards-1.gif)](docs/nova-databoards-1.gif)

### Seperation of metric calculation and visualisation

[](#seperation-of-metric-calculation-and-visualisation)

The Nova-Databoards metric classes are the container for all metric calculations. The calculations are adoptable to the supported visualisations, so e.g. within a `Users`-metric you can calculate e.g. the total number of users for a Value-Visualisation or provide Trend-Data for a Trend-Visualisation.

### configurable and re-usable

[](#configurable-and-re-usable)

With custom configurations you can make your Boards, Metrics, Filters and Visualisations re-usable - check out `nova-bi/nova-databoards/src/Models/Datametricables/users.php` how to use the same metric to show the number of total users and users with verified email.

[![](docs/nova-databoards-2.gif)](docs/nova-databoards-2.gif)

Thanks to [laravel-schemaless-attributes](https://github.com/spatie/laravel-schemaless-attributes) you can add configuration options to your boards, metrics, filters and visualisations without changing the database schema.

### filterable and dynamic

[](#filterable-and-dynamic)

By adding the Trait `nova-bi/nova-databoards/src/Traits/DynamicMetricsTrait.php` the Nova-Metrics (or any custom metric card) become attributable.

Thumbs up to [Muzaffer Dede](https://novapackages.com/collaborators/muzafferdede) for developing [Nova Global Filter](https://novapackages.com/packages/nemrutco/nova-global-filter), which is essential for dynamic updates of the widgets on changing filters.

Introduction
------------

[](#introduction)

Data visualisation is a common business requirement. The default [Nova Metrics](https://nova.laravel.com/docs/3.0/metrics/defining-metrics.html#value-metrics) are providing a simple way to display certain data from your application.

However the approach to bake metric calculation and visualisation into one file causes limitations if you e.g. want to re-use a metric for segments.

With Nova Metric you would require 3 files to visualize 3 filtered segments of the same KPI e.g.

- Revenue total
- Revenue by region
- Revenue by customer group

In Nova Databoard you would develop 1 filterable datametric with configuration options and different visualisations like Value, Trend, Partition or custom visuals.

Once the datametrics are developed you can configure unlimited widgets and assign them to unlimited databoards.

Databoards are filterable and dynamic - so when changing a filter the widgets are reloads with the new data.

Installation
------------

[](#installation)

Add the package using composer

```
composer require nova-bi/nova-databoards

```

run Migrations

```
php artisan migrate

```

Add to the `tools()`-method in your `NovaServiceProvider.php` like this:

```
    use NovaBI\NovaDataboards\NovaDataboards;

    public function tools()
    {
        return [
            new NovaDataboards()
        ];
    }
```

**Recommended:** Publish Configuration File

```
php artisan vendor:publish --provider="NovaBI\NovaDataboards\NovaDataboardsServiceProvider" --tag="config"

```

with `showToolMenu` you can configure if you want to use the Tool Menu default Resource Listing. Set to `false` when using with [Collapsible Resource Manager](https://novapackages.com/packages/digital-creative/collapsible-resource-manager).

**Optional:** Publish Migrations

```
php artisan vendor:publish --provider="NovaBI\NovaDataboards\NovaDataboardsServiceProvider" --tag="migrations"

```

Playground
----------

[](#playground)

By default the Playground-Setup is configured, which will give you following basic metrics from you Nova installation:

- Users
- Boards
- Widgets
- ActionEvents

Following visualisations are available (depending on the metric)

- Value
- Trend
- Partition

And these Filters are available.

- DateFrom
- DateTo
- ActionEventTypes

Direct Access to Dashboards
---------------------------

[](#direct-access-to-dashboards)

The nice [Collapsible Resource Manager](https://novapackages.com/packages/digital-creative/collapsible-resource-manager) package allows you to customize the menu structure.

With the following code the Databoards are directly accessible through the Menu (see *know issues* below - do you know how to solve this?)

```
    use NovaBI\NovaDataboards\NovaDataboards;
    use DigitalCreative\CollapsibleResourceManager\CollapsibleResourceManager;
    use DigitalCreative\CollapsibleResourceManager\Resources\Group;
    use DigitalCreative\CollapsibleResourceManager\Resources\NovaResource;
    use DigitalCreative\CollapsibleResourceManager\Resources\TopLevelResource;

    /**
     * Get the tools that should be listed in the Nova sidebar.
     *
     * @return array
     */
    public function tools()
    {
        $analyticsDataboards = [];

        $databoards = \NovaBI\NovaDataboards\Models\Databoard::all();
        $analyticsDataboards[] = NovaResource::make(\NovaBI\NovaDataboards\Nova\Databoard::class)->label(__('All Databoards'));
        foreach ($databoards as $databoard) {
            $analyticsDataboards[] = NovaResource::make(\NovaBI\NovaDataboards\Nova\Databoard::class)->detail($databoard->id)->label($databoard->name);
        }

        return [
            new NovaDataboards(),
            new CollapsibleResourceManager([
                'navigation' => [
                    TopLevelResource::make([
                        'label' => 'Databoards',
                        'icon' => '',
                        'resources' => $analyticsDataboards
                    ]),
                    TopLevelResource::make([
                        'label' => 'Admin',
                        'icon' => '',
                        'resources' => [
                            \App\Nova\User::class,
                            Group::make([
                                    'label' => 'Databoard Configuration',
                                    'expanded' => false,
                                    'icon' => '',
                                    'resources' =>
                                        [
                                            \NovaBI\NovaDataboards\Nova\DataboardConfiguration::class,
                                            \NovaBI\NovaDataboards\Nova\Datafilter::class,
                                            \NovaBI\NovaDataboards\Nova\Datawidget::class
                                        ]
                                ]
                            )
                        ]
                    ]),
                ]
            ])
        ];
    }
```

### Known issue

[](#known-issue)

- cards - and therefor the dashboard - are not updated when navigating directly between resource details views e.g. using [Collapsible Resource Manager ](https://novapackages.com/packages/digital-creative/collapsible-resource-manager), see [Issue 1:](https://github.com/Nova-BI/nova-databoards/issues/1)

Extending
---------

[](#extending)

### Concept

[](#concept)

Separation of Metric Calculation and Visualisation

Nova Databoards follow the Nova concept of Resources to represent Models and are structured as following:

`\Nova\Databoardables` -&gt; `\Models\Databoardables`

`\Nova\Datafilterables` -&gt; `\Models\Datafilterables`

`\Nova\Datametricables` -&gt; `\Models\Datametricables`

`\Nova\Datavisualables` -&gt; `\Models\Datavisualables`

You can place your custom Resources and Models in any subdirectory. To make them available please register in the configuration file `config/nova-databoards.php`. Please follow the Playground examples within the `vendor/nova-bi/nova-databoards/src/`directory.

Roadmap
-------

[](#roadmap)

[Open Development tasks on github](https://github.com/Nova-BI/nova-databoards/issues?q=is%3Aopen+is%3Aissue+label%3Adevelopment)

- support for custom filter
- data range filter using ()
- enhance filter bar with main filters (always visibile) and secondary filters (click on button to add)
- Adding layout flexibility to Nova Cards (e.g. height, sort-order)
- artisan command to generate metrics, visuals
- adding visuals, e.g. Chart JS, Google Charts, APEX with common data api
- interactive visuals (todo - click on e.g. a partition will set a filter, which updates all widgets)
- expose metric data through API for external visualisation
- adding ETL for data aggregation
- GUI enhancements
    - select metric with icons / description
    - select visuals with icons / description
    - select filters with icons / description
- drag &amp; drop sorting of widgets

Known issues
------------

[](#known-issues)

- Sorting relation-ships (Widgets -&gt; Boards) are not supported yet, the order of widgets on a dashboard is natural [Nova Sortable](https://github.com/optimistdigital/nova-sortable), see [outl1ne/nova-sortable#9](https://github.com/outl1ne/nova-sortable/issues/9)
- 2nd level morphto using [Inline MorphTo Field](https://novapackages.com/packages/digital-creative/nova-inline-morph-to) can be edited, but changes are not stored. Should it be read-only as well? See [dcasia/nova-inline-morph-to#16](https://github.com/dcasia/nova-inline-morph-to/issues/16)
- custom filter not showing in global filter card, see [nemrutco/nova-global-filter#16](https://github.com/nemrutco/nova-global-filter/issues/16)

Contributing
------------

[](#contributing)

If you would like to contribute please fork the project and submit a PR.

Check out  for open development tasks and issues.

Credits notice
--------------

[](#credits-notice)

This package is highly depending on following selection of packages from the huge range of excellent packages for laravel and nova.

- [Collapsible Resource Manager](https://novapackages.com/packages/digital-creative/collapsible-resource-manager)
- [Inline MorphTo Field](https://novapackages.com/packages/digital-creative/nova-inline-morph-to)
- [Nova Field Dependency Container](https://novapackages.com/packages/epartment/nova-dependency-container)
- [Nova Global Filter](https://novapackages.com/packages/nemrutco/nova-global-filter)
- [Nova Sortable](https://novapackages.com/packages/optimistdigital/nova-sortable)
- [Nova Text Card](https://novapackages.com/packages/ericlagarda/nova-text-card)
- [laravel-schemaless-attributes](https://github.com/spatie/laravel-schemaless-attributes)

License
-------

[](#license)

This software is released under [The MIT License (MIT)](LICENSE).

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance9

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

5

Last Release

2144d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1948fab9458ded52898b5cf86c89ea8c741a452d74ee0ccf831602ae0a931729?d=identicon)[Cord](/maintainers/Cord)

---

Top Contributors

[![cord](https://avatars.githubusercontent.com/u/158588?v=4)](https://github.com/cord "cord (12 commits)")

---

Tags

laraveldashboardanalyticsnovadataboard

### Embed Badge

![Health badge](/badges/nova-bi-nova-databoards/health.svg)

```
[![Health](https://phpackages.com/badges/nova-bi-nova-databoards/health.svg)](https://phpackages.com/packages/nova-bi-nova-databoards)
```

###  Alternatives

[digital-creative/nova-dashboard

The missing dashboard for nova.

7169.3k1](/packages/digital-creative-nova-dashboard)[jubeki/nova-card-linkable

A Linkeable Card for the Laravel Nova Dashboard.

19246.1k](/packages/jubeki-nova-card-linkable)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
