PHPackages                             nova-bi/nova-dashboard-manager - 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. nova-bi/nova-dashboard-manager

AbandonedLibrary

nova-bi/nova-dashboard-manager
==============================

Create and manage dynamic dashboards

3.0(4y ago)216.3k↓42%8[7 issues](https://github.com/Nova-BI/nova-dashboard-manager/issues)MITPHPPHP &gt;=7.4.0

Since Oct 8Pushed 2y ago3 watchersCompare

[ Source](https://github.com/Nova-BI/nova-dashboard-manager)[ Packagist](https://packagist.org/packages/nova-bi/nova-dashboard-manager)[ RSS](/packages/nova-bi-nova-dashboard-manager/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (21)Versions (62)Used By (0)

Nova Dashboard Manager
======================

[](#nova-dashboard-manager)

The Dashboard-Manager for [Nova-Dashboard](https://novapackages.com/packages/digital-creative/nova-dashboard) allows you to configure dashboards within your Nova-App

[![Latest Stable Version](https://camo.githubusercontent.com/098c833538310fca7bdf906219a6004ece7d99eeb5005a40746981f63618eaed/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617368626f6172642d6d616e616765722f76)](//packagist.org/packages/nova-bi/nova-dashboard-manager) [![Total Downloads](https://camo.githubusercontent.com/6df5cfc9a56f60136323765001adbc7bc2e2d623cdec85ffd6268e514843865f/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617368626f6172642d6d616e616765722f646f776e6c6f616473)](//packagist.org/packages/nova-bi/nova-dashboard-manager) [![Latest Unstable Version](https://camo.githubusercontent.com/4c3461cd41229ee4b4ed29b59c58e000aa26223ad1d4519653d819341978fa82/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617368626f6172642d6d616e616765722f762f756e737461626c65)](//packagist.org/packages/nova-bi/nova-dashboard-manager) [![License](https://camo.githubusercontent.com/57127e01687e48428823dd68f757dd9e53b491219ad47bc1ba6313648d04057c/68747470733a2f2f706f7365722e707567782e6f72672f6e6f76612d62692f6e6f76612d64617368626f6172642d6d616e616765722f6c6963656e7365)](//packagist.org/packages/nova-bi/nova-dashboard-manager)

[![Laravel Nova Dashboard In Action](https://raw.githubusercontent.com/dcasia/nova-dashboard/master/screenshots/demo.gif)](https://raw.githubusercontent.com/dcasia/nova-dashboard/master/screenshots/demo.gif)

Installation:
=============

[](#installation)

You can install the package via composer:

```
composer require nova-bi/nova-dashboard-manager

```

If you want to specify your own table names you need to edit the configurations before running the migrations:

```
nova-dashboard.table_name
nova-dashboard-manager.tables

```

**Recommended:** Publish Configuration File for adjusting model and table names of Nova-Dashboard

```
php artisan vendor:publish --provider="DigitalCreative\NovaDashboard\ToolServiceProvider" --tag="config"

```

**Recommended:** Publish Configuration File for all configurations of Nova-Dashboard-Manager

```
php artisan vendor:publish --provider="NovaBi\NovaDashboardManager\DashboardManagerServiceProvider" --tag="config"

```

**Optional:** Publish Migrations

```
php artisan vendor:publish --provider="NovaBi\NovaDashboardManager\DashboardManagerServiceProvider" --tag="migrations"

```

Run Migrations

```
php artisan migrate

```

Usage
-----

[](#usage)

Open `NovaServiceProvider.php` to add classes:

```
use DigitalCreative\NovaDashboard\NovaDashboard;
use NovaBi\NovaDashboardManager\DashboardManager;
```

Enhance the tools() methods like this:

```
public function tools()
{
    return [
        new DashboardManager(), // must be loaded first !!!
        new NovaDashboard(),
    ];
}
```

Start with the Playground
=========================

[](#start-with-the-playground)

The package comes with working playground examples so you can test the functionality and use the code as an example for your own implementations.

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

- Users
- Boards
- Widgets
- ActionEvents
- ActionEventTypes

Following visualisations are currently available

- Value
- ChartJS Line
- ChartJS Bar

And these Filters are available:

- DateRange
- ActionEventTypes

Go to the Dashboard-Manager Tools menu and setup some demo widget, filters and dashboards.

**After configuration of your dashboard you need to reload Nova to show the new Menu-Item to access the dashboard**

Develop and Register your own Metrics, Filters and Visuals
==========================================================

[](#develop-and-register-your-own-metrics-filters-and-visuals)

Seperation of metric calculation and visualisation
--------------------------------------------------

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

The 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-dashboard-manager/src/Models/Datametricables/users.php` how to use the same metric to show the number of total users and users with verified email.

Code Structure
--------------

[](#code-structure)

Following the recommended structure to build your own Metrics, Filters and Visuals. Please check the sources of this package in `nova-bi/nova-dashboard-manager/src` for details

```
/myDashboard
    /Calculations               All calculations - could be done in metrics as well
    /Models
        /Datafilterables        Models representing filters
        /Datametricables        Models representing metrics
        /Datavisualables        Models representing visuals
            /Visuals            Implementation of visuals,
                                    must extend `DigitalCreative\ValueWidget\Widgets`
                                    must use Trait \NovaBi\NovaDashboardManager\Models\Datavisualables\Visuals\Visuable
    /Nova
        /Datafilterables        Resources for filter models
        /Datametricables        Resources for metric models
        /Datavisualables        Resources for visual models

```

Register your sources in configurations:

```
nova-dashboard-manager.datafilterables
nova-dashboard-manager.datametricables
nova-dashboard-manager.datavisualables

```

Now you can create new Filters and Metrics in your Dashboard configuration and attach them to dashboards.

Debugging of Calculations
-------------------------

[](#debugging-of-calculations)

using Trait \\NovaBi\\NovaDashboardManager\\Calculations\\Calculatable` you can view the raw SQL using the`debugQuery()` method

```
dd($calculation->debugQuery($calculationCurrentValue->query()));

```

Direct Access to Dashboards
===========================

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

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

Configure `nova-dashboard-manager.showToolMenu` to `false` to hide the tool menue

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

```
    // CollapsibleResourceManager
    use DigitalCreative\CollapsibleResourceManager\CollapsibleResourceManager;
    use DigitalCreative\CollapsibleResourceManager\Resources\Group;
    use DigitalCreative\CollapsibleResourceManager\Resources\NovaResource;
    use DigitalCreative\CollapsibleResourceManager\Resources\RawResource;
    use DigitalCreative\CollapsibleResourceManager\Resources\TopLevelResource;

    // Dashboard
    use DigitalCreative\NovaDashboard\NovaDashboard;
    use NovaBi\NovaDashboardManager\DashboardManager;
    use NovaBi\NovaDashboardManager\DashboardResource;
    use NovaBi\NovaDashboardManager\Nova\DashboardConfiguration;
    use NovaBi\NovaDashboardManager\Nova\Datafilter;
    use NovaBi\NovaDashboardManager\Nova\Datawidget;

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

        foreach ($dashboards as $dboard) {
            $analyticsDataboards[] = DashboardResource::make($dboard)->label($dboard->resourceLabel())->icon(faIcon('cog'));
        }

        return [
            new DashboardManager(), // must be loaded first !!!
            new NovaDashboard(), // must be loaded as well

            new CollapsibleResourceManager([
                'navigation' => [
                    TopLevelResource::make([
                        'label' => 'Databoards',
                        'icon' => '',
                        'resources' => $analyticsDataboards
                    ]),
                    TopLevelResource::make([
                        'label' => 'Admin',
                        'icon' => '',
                        'resources' => [
                            \App\Nova\User::class,
                            Group::make([
                                    'label' => 'Dashboard Configuration',
                                    'expanded' => false,
                                    'icon' => '',
                                    'resources' =>
                                        [
                                            NovaResource::make( DashboardConfiguration::class)->index(),
                                            NovaResource::make( Datafilter::class)->index(),
                                            NovaResource::make( Datawidget::class)->index(),
                                        ]
                                ]
                            )
                        ]
                    ]),
                ]
            ])
        ];
    }
```

Known issue
-----------

[](#known-issue)

- pages of the same route are not updated when navigating directly between views e.g. using [Collapsible Resource Manager ](https://novapackages.com/packages/digital-creative/collapsible-resource-manager). Therefor when switching between dashboards they are not updated - we hope to solve this soon.

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.

- [Nova-Dashboard](https://novapackages.com/packages/digital-creative/nova-dashboard)
- [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

37

—

LowBetter than 83% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 67.5% 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 ~22 days

Recently: every ~131 days

Total

50

Last Release

976d ago

Major Versions

0.9 → 1.02021-03-01

0.10 → 1.12021-03-08

1.9 → 2.02021-09-22

2.9 → 3.02021-11-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/e4a85b779289ce63c67af70941a545331f3e362a4b58330495cc7e77250e5401?d=identicon)[milewski](/maintainers/milewski)

![](https://www.gravatar.com/avatar/159620f3dca5eb554539f62b2e441b95eecb6c1ce39395369aaa4608cef07a52?d=identicon)[marispro](/maintainers/marispro)

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

---

Top Contributors

[![marispro](https://avatars.githubusercontent.com/u/5610414?v=4)](https://github.com/marispro "marispro (83 commits)")[![cord](https://avatars.githubusercontent.com/u/158588?v=4)](https://github.com/cord "cord (34 commits)")[![keizah7](https://avatars.githubusercontent.com/u/49227202?v=4)](https://github.com/keizah7 "keizah7 (2 commits)")[![m-a-x-s-e-e-l-i-g](https://avatars.githubusercontent.com/u/7907436?v=4)](https://github.com/m-a-x-s-e-e-l-i-g "m-a-x-s-e-e-l-i-g (2 commits)")[![localhost8080](https://avatars.githubusercontent.com/u/1472812?v=4)](https://github.com/localhost8080 "localhost8080 (1 commits)")[![siegerhansma](https://avatars.githubusercontent.com/u/3443339?v=4)](https://github.com/siegerhansma "siegerhansma (1 commits)")

### Embed Badge

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

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

###  Alternatives

[spatie/laravel-event-sourcing

The easiest way to get started with event sourcing in Laravel

9003.7M26](/packages/spatie-laravel-event-sourcing)

PHPackages © 2026

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