3

I've been trying to build my own data analytics platform with the following features/workflow -

  1. backend to generate/retrieve data from external systems (for eg. time series data using mqtt, websockets)

  2. Tabbed Web application to -

    A. Define workflows visually (i.e interactive directed graph/flowchart) I would like to have an area on the screen where the user can see a selection of shapes (eg. rectangle) (i.e the transforms) join the shapes together to create a chain transforms that is to be run on the data

    B. show results of transforms (also other charts from the original data) in a grid layout (i.e an interactive dashboard

I am new to most of this stuff, although I have worked on Django for my earlier projects. This time I would like to have an async, non-blocking architecture.

I have built my system up to a place where the MQTT based pub/sub system is complete, & the backend can send data if a request is placed for it

Here's my problem/confusion -

I have read up on the tornado docs, bokeh docs, examples (eg. the server_embed example) and also many many posts/questions/articles on how to go about doing this stuff

When i attempt to find a solution without using javascript, I have not come across any simple method/example of creating things like a good responsive grid layout, interactive flowchart or visual editor etc. etc. with pure python. Python seems to be best with the other stuff I need for my app, eg. pandas, numpy, blaze, odo, scikit, tornado.

However, whenever I look at javascript there is this huge universe of nice & beautifull stuff like jquery, JointJS, AngularJS & what-not that just seems so cool & easy to use

Plus I read an answer somewhere (quora?) on Jinja2 vs. AngularJS, which was along the lines of "You should not mix both because Jinja2=server side HTML generation vs. AngularJS=browser side HTML generation, which don't mix well)

All of this has led me deeper into confusion, because I'm new to most of this

So my questions are -

  1. What is an architecturally correct pattern, example or some reference(s) on using

    a. tornado for the server/webserver

    b. Use bokeh for interactive charts for the original/transformed data

    c. Use some nice CSS (or maybe SASS?)

    d. Use some existing HTML5 framework such as Foundation for the layouts * responsive grids

    e. Use something like JointJS in the same browser page somewhere to join blocks together to define the transforms

  2. If I use javascript, vs. I don't, what does this architecturally mean for the tornado templating system

  3. Can I, or should I use Jinja2 in this mix (i saw an example that explains how integration with Jinja2 is a better option for templating on tornado)

demorphica
  • 199
  • 1
  • 8

0 Answers0