Giter Club home page Giter Club logo

chooseviz's People

Contributors

alessandrofelder avatar daffidwilde avatar geraintpalmer avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

chooseviz's Issues

Building a robust testing framework for both plots and the app itself

Plots

As it stands, our tests are only on the scripts which generate our plots and save them to file, e.g. plots/histogram/py/test.py. While this is good in that it ensures an image is created when the script is run, it gives no assurance on the quality/accuracy of that image. Any suggestions on how best to do this are greatly appreciated.

Web-app

In addition to this, our web-app has no explicit tests. At the time of writing, the app is being deployed on Heroku, so if anything were to break, it would roll back to the latest working version of our app.
With a look to the future, a suite of both functional and unit tests for our web-app would be ideal. This not only fortifies what is already built and roots out any exceptional cases, but gives a platform from which to build new features in a 'safe' way.

PRs are always welcome!

Further language support

Not all users are going to be comfortable using Python to create their images, and it would make for a great enhancement to the web-app to be able to support more languages. We are currently thinking R and some sort of D3/JavaScript support.

Guidelines for contributions can be found in CONTRIBUTIONS.rst but the general structure we have established is (for histograms):

plots / ...
        histogram /       meta.txt
                    description.md
                                py / plot.py
                                     test.py
                                     plot.png

Now to add another language to a particular plot, a subdirectory r (for instance) should be added containing:

  • A script which generates the plot in question (note that this script will also be rendered in the web-app so make it presentable)
  • A test for that script
  • An image of that plot (again, to be rendered in the web-app so of a suitable resolution and quality)

Incorporating different types of data

The types of data presented at the time of writing (categorical and continuous) are minimal. Examples of datatypes (and/or combinations thereof) that would prove useful in the future are:

  • Datetime
  • Geospatial (latitude/longitude, county boundaries)
  • Ordinal (shoe size, etc)
  • 3-dimensional datasets (such as (x, y)-coordinates with temperature for heatmaps)

When submitting plots to work with these datatypes, the datasets themselves should be stored in the data directory in an appropriate way, and of minimal size. The plots should follow the guidelines given in #11 and CONTRIBUTIONS.rst.

At a bare minimum, these submissions should include a metadata file describing the datatypes used, and then a subdirectory with a script, a test and a rendered plot.

Subsequently, our web-app scripts will need altering to accommodate for these new datatypes. Please feel free to open a pull request to begin this process.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.