theodi / comma-chameleon

A desktop CSV editor for data publishers
https://comma-chameleon.io/
MIT License
280 stars 27 forks source link

General thoughts towards making it easier to collaborate #108

Closed pwalsh closed 8 years ago

pwalsh commented 8 years ago

Hi,

I can see a great deal of potential in collaborating on this codebase: at OKI we have many similar parts, but consolidating around one code base for actual data file editing and validating would be really cool.

Some points in relation to that:

  1. Developer documentation: Of course we can read the source, but some high-level developer documentation would go a long way here. I'd say it is currently a barrier to entry for non-ODI staff
  2. Web distribution: I love the idea of a desktop app for this, and for government offices it is a great solution. However, it would be ideal if there could also be a web distribution. Any idea how far the code would be from making this possible?
  3. Related to above: it is not clear to me yet how much happens in javascript, and how much is shelled out to csvlint. From a collaboration perspective, and a portability perspective, it would be really cool if this was all in javascript. we've been doing lots of stuff like this in-browser, and based on that experience, I'd guess that this could actually run without a server, with the right API abstractions.

Looking forward to your thoughts/comments.

pezholio commented 8 years ago

Hey @pwalsh, collaborating on this would be awesome! Bit of a brain dump on your individual points:

  1. It's not had a massive amount of time spent on it, hence why everything's a bit messy. We're a bit tied up with contract work over the next few weeks, but I'll get some time factored in for cleaning up and improving the docs.
  2. Web distribution is probably doable, the bulk of the logic happens on the client side, most of the 'server side' work is passing messages to the client and loading files etc. Would be interesting to see how we could do this without duplicating code.
  3. The only work carried out by CSVlint is the validation (as shown in https://github.com/theodi/comma-chameleon/blob/master/browser/validate.js). This was originally done by using the (undocumented) CSVlint.io API, which was pretty slow, and also needed a network connection. We could probably transfer some of this logic to JS, especially as many of the errors that CSVlint.rb looks for don't make sense in Comma Chameleon. Would be better to make this a seperate module though - maybe contributing to / forking https://github.com/chilijung/csvlint.js.

As I said, I'll have a look at tidying / improving the docs in the next couple of weeks, but super keen to do some cross ODI / OKI work on this - would be awesome to collaborate more closely! 👍

pwalsh commented 8 years ago

Hey @pezholio so let's swing back on this when the docs are fleshed out! lots of interesting ways to collaborate here.