PHPackages                             arnulfosolis/qcharts - 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. [Database &amp; ORM](/categories/database)
4. /
5. arnulfosolis/qcharts

ActiveSymfony-bundle[Database &amp; ORM](/categories/database)

arnulfosolis/qcharts
====================

Business tool design to aid the analysis of SQL data in a graphical way to empower users among a team.

1621PHP

Since May 26Pushed 8y ago2 watchersCompare

[ Source](https://github.com/arnulfojr/qcharts)[ Packagist](https://packagist.org/packages/arnulfosolis/qcharts)[ RSS](/packages/arnulfosolis-qcharts/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

QCharts
=======

[](#qcharts)

QCharts is a powerful visual aid and a very handy tool to use when querying a lot of data from a database and sharing them between your team.

How to quick-install
====================

[](#how-to-quick-install)

- Require QCharts via composer

```
composer require arnulfosolis/qcharts @dev

```

- Installing QCharts using composer is pretty simple
    - Alternate installation would be to add directly QCharts to a target project.

```
composer install

```

- Add the Bundles to the `AppKernel`.

    - `QCharts\CoreBundle\CoreBundle`
    - `QCharts\FrontendBundle\FrontendBundle`
    - `QCharts\ApiBundle\ApiBundle`
        - If API Documentation is required, use `QCharts\DevApiBundle\DevApiBundle`instead.
- QCharts needs some configuration in the target project prior to the execution, please refer to the `CONFIG_README.md` file under `QCharts` directory for a more in-depth installation guide.

    - A simple configuration would be:

```
#app/config/config.yml
#A minimum configuration of QCharts
qcharts:
    urls:
    limits:
    paths:
    roles:
    charts:
```

- Resolve QChart's User Interface on `orm`'s definition to your User Class.

    - Refer to `CONFIG_README.md` file for further details.
    - `resolve_target_entities`
- QCharts requires access to your target's database, since QCharts requires persisting information, so:

```
php app/console doctrine:database:create
php app/console doctrine:schema:update --force

```

- Since the project comes included with a web application, QCharts requires Assetic files to be dumped.
    - You have to register QChart's `FrontendBundle` in Assetic's Configuration.

```
php app/console assetic:dump

```

How to use
==========

[](#how-to-use)

- QCharts comes with three bundles.
    - The `CoreBundle`, which comes with all the important services needed to get your data formatted.
    - The `ApiBundle` that handles the QChart's API.
        - When using the `DevApiBundle`, you'll benefit of Nelmio's ApiDoc implementation (read DevApiBundle README for more information) under the route `/api/doc`.
    - And the client application laying in the `FrontendBundle`.
- QCharts also comes with a client frontend application that comes with some QChart's tool management.
- To start using it, login using the targeted project security measures, and start going through all the list of Requested Queries the developers have submitted.
- To request a Query to be charted, you can go directly to `/query/register`.
    - Notice: The user has to hold the mapped role `admin`.
        - For more information about setting up the user roles, consult the `CONFIG_README.md` file in the source directory of QCharts.
- QCharts uses the first column in the table of the results from the requested Query to represent the X-Axis of the graph.
- Have fun!

Future development
==================

[](#future-development)

- In time machine, compare snapshots
- Reduce unnecessary snapshot files with redundant data.

Contact
=======

[](#contact)

- Arnulfo Solis
- E-Mail:
- Twitter: @arnulfojr

###  Health Score

22

—

LowBetter than 24% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97.1% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/54f3160d2a4ab134af9d7e36b83922c63c2ebb1d4223dcdc36eeb6f4bcab0805?d=identicon)[arnulfojr](/maintainers/arnulfojr)

---

Top Contributors

[![arnulfojr](https://avatars.githubusercontent.com/u/1023023?v=4)](https://github.com/arnulfojr "arnulfojr (34 commits)")[![trivago-makbarof](https://avatars.githubusercontent.com/u/3328349?v=4)](https://github.com/trivago-makbarof "trivago-makbarof (1 commits)")

---

Tags

chartscomposerdatabasesymfony-bundle

### Embed Badge

![Health badge](/badges/arnulfosolis-qcharts/health.svg)

```
[![Health](https://phpackages.com/badges/arnulfosolis-qcharts/health.svg)](https://phpackages.com/packages/arnulfosolis-qcharts)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k280.5M5.7k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k114.4M88](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k51.5M8.3k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k62.7M501](/packages/mongodb-mongodb)[maxmind-db/reader

MaxMind DB Reader API

69796.7M45](/packages/maxmind-db-reader)[spatie/db-dumper

Dump databases

1.2k25.1M58](/packages/spatie-db-dumper)

PHPackages © 2026

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