Skip to content

Architectural changes to make more deployable, configureable, and upgradeable. #211

@zzolo

Description

@zzolo

I am a big fan of Chartbuilder. And please excuse any things I may have overlooked in researching how Chartbuilder works and how it should be used by other organizations. I may come off negative here, but I am mostly just trying to discuss a possibility here.

Chartbuilder seems like it is meant to be used by other organizations. Specifically I would think that the goal is to have organization install Chartbuilder, customize/configure for their needs, and then deploy somewhere. I personally don't think it's built in a way to do this effectively, and I am reluctant to use Chartbuilder in our organization since there is no real upgrade path or easy way to manage customizations/configuration.

This seems to be the current upgrade path for Chartbuilder, and this is not a very good/stable/usual way to upgrade.
https://github.com/Quartz/Chartbuilder/blob/master/docs/git-workflow-forks.md

To solve this, Chartbuilder should be thought of as a library, i.e. an NPM or Bower module that can be installed like npm install chartbuilder. This would put a bit more work on the deployment side to set up an HTML page that called something like Chartbuilder({ el: ".cb-container" });. But, given that you need to do npm install and other commands to get running with Chartbuilder, I don't see much difference in skill level for this.

Another step to achieve this would have Chartbuilder not need to go through a build process to be used, but instead comes as a built library.

Secondly, configuration is managed through changing source files. This again, makes it difficult to upgrade. Configuration should happen in a way that is outside the source files, either through a JSON file or options in a function.

JS configuration is also happening in multiple places. It would be super nice to see/have this all in one place.

So, these sorts of changes would make it much easier to deploy, configure, upgrade, and ultimately invest in, at least in my opinion.

I don't think this is a perfect example, but this project gives a good idea of the architectural direction that I think would make Chartbuilder much easier to use from an organizational standpoint.
https://github.com/datanews/tik-tok

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions