{"id":36365601,"url":"https://github.com/chartello/chartello","last_synced_at":"2026-04-16T03:01:45.778Z","repository":{"id":65697720,"uuid":"597602990","full_name":"chartello/chartello","owner":"chartello","description":"Visualize your Laravel app data in simple dashboards.","archived":false,"fork":false,"pushed_at":"2025-02-25T13:32:46.000Z","size":2655,"stargazers_count":181,"open_issues_count":2,"forks_count":9,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-11T16:33:40.584Z","etag":null,"topics":["chart","dashboard","data-visualization","laravel"],"latest_commit_sha":null,"homepage":"https://demo.chartello.com","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chartello.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-05T03:13:16.000Z","updated_at":"2025-09-17T16:28:46.000Z","dependencies_parsed_at":"2025-02-25T14:26:40.857Z","dependency_job_id":"a9bbee72-145b-4e2a-8ec2-7a9da9df3824","html_url":"https://github.com/chartello/chartello","commit_stats":{"total_commits":74,"total_committers":1,"mean_commits":74.0,"dds":0.0,"last_synced_commit":"3adfa9f938be8f63cdacc618ed0c604e5c764dde"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/chartello/chartello","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chartello%2Fchartello","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chartello%2Fchartello/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chartello%2Fchartello/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chartello%2Fchartello/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chartello","download_url":"https://codeload.github.com/chartello/chartello/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chartello%2Fchartello/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31869050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chart","dashboard","data-visualization","laravel"],"created_at":"2026-01-11T13:53:57.095Z","updated_at":"2026-04-16T03:01:45.773Z","avatar_url":"https://github.com/chartello.png","language":"JavaScript","readme":"# Chartello\n\n[![tests](https://github.com/chartello/chartello/actions/workflows/tests.yml/badge.svg)](https://github.com/chartello/chartello/actions/workflows/tests.yml)\n[![GitHub license](https://img.shields.io/github/license/chartello/chartello)](https://github.com/chartello/chartello/blob/master/LICENSE.md)\n\nChartello provides a simple UI for visualizing your data in your **Laravel 10+** apps that use **MySQL**.\n\n\u003ca href=\"https://demo.chartello.com/\"\u003e\n    \u003cimg width=\"800\" alt=\"screenshot\" src=\"https://user-images.githubusercontent.com/10030505/219040779-909f08f8-c068-4d30-944a-2f64e92159e2.png\"\u003e\n\u003c/a\u003e\n\n## Installation\n\nAdd the package to your project via composer:\n```bash\ncomposer require chartello/chartello\n```\n\nPublish the package resources:\n\n```bash\nphp artisan chartello:install\n```\n\nRun new migrations: \n\n```bash\nphp artisan migrate\n```\n\nVoilà! Open `yourapp.test/chartello` on your local machine. You should see the Chartello dashboard.\n\n## Configuration\n\n### Dashboard Authorization \n\nChartello dashboards allow users to write SQL queries against your database. This makes it important for \nyou to ensure that they are protected behind appropriate permissions.\n\nWhen you install Chartello, it adds a `app\\Http\\Middleware\\ProtectChartello` middleware to your app. This,\nby default, limits the access to these dashboards only to your local environment. You should modify this \nmiddleware to define how access to these dashboards should be restricted in your production environment.\n\n```php\n/**\n * Define the authorization logic for accessing Chartello.\n *\n * @param $request\n * @return bool\n */\nprotected function authorize($request)\n{\n    if (App::environment('local')) {\n        return true;\n    }\n\n    return $request-\u003euser() \u0026\u0026 in_array($request-\u003euser()-\u003eemail, [\n        //\n    ]);\n}\n```\n\n### Dashboard Routes\n\nAfter installing Chartello, its configuration file will be located at `config/chartello.php`. This file allows you to\ncustomize the `path` to the Chartello dashboards and adjust HTTP middleware that should be used when serving them.\n\n## Usage\n\n### Writing Queries\n\nChartello currently supports two types of panels: \n\n#### 1. Trend Charts\nA trend chart expects an `x` column with date/datetime values and a numeric `y` column. \n\nTo populate a trend chart, create a new panel in \nthe UI and enter a query similar to this one:\n\n```sql\nSELECT DATE(created_at) AS x, COUNT(*) AS y\nFROM users\nWHERE created_at BETWEEN @start AND @end\nGROUP BY x\nORDER BY x ASC\n```\n\nIncluding the `BETWEEN @start AND @end` filter ensures that your\nchart reflects the date range selection available in the UI.  \n\n#### 2. Tables\n\nTables are flexible and accept almost any `SELECT` queries.\n\nIf you wish the data in your table to reflect the date selection from the UI, \nyou should include the `BETWEEN @start AND @end` filter in your query.\n\nHere is an example query for populating a table panel:\n\n```sql\nSELECT name, email, created_at\nFROM users\nWHERE created_at BETWEEN @start AND @end\nORDER BY created_at DESC\nLIMIT 5\n```\n\n## Upgrading\n\nWhen upgrading to a new version of Chartello, you should re-publish its assets:\n\n```\nphp artisan vendor:publish --tag=chartello-assets --force\n```\n\n### Upgrading from v0.5.x\n\nChartello no longer depends on Inertia.js. If you have published the Chartello config file, remove the `HandleInertiaRequests` middleware from `config/chartello.php`:\n\n```diff\n 'middleware' =\u003e [\n     'web',\n     App\\Http\\Middleware\\ProtectChartello::class,\n-    Chartello\\Http\\Middleware\\HandleInertiaRequests::class,\n ],\n```\n\n## License\n\nThe MIT License (MIT). Please see [License File](license.md) for more information.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchartello%2Fchartello","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchartello%2Fchartello","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchartello%2Fchartello/lists"}