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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions