Giter Club home page Giter Club logo

tangelo's Introduction

License https://travis-ci.org/Kitware/tangelo.svg?branch=master https://readthedocs.org/projects/pip/badge/

Tangelo: A Web Application Platform for Python Programmers

Tangelo reimagines the "web application" by bringing Python into the fold: in addition to serving standard components such as HTML, CSS, and JavaScript files in the usual way, Tangelo also manufactures serverside web services from Python files in your application. These services might provide custom adapters to databases, launch complex jobs on a cluster to retrieve the results later, perform image analysis, or really anything that can be done in a Python script. The Python standard library is extensive, and the galaxy of third-party libraries even more so. Instead of demanding that you adapt your code to a complex web framework, worrying about routing and scaffolding along the way, Tangelo adapts to you, effortlessly integrating your Python code right into your web application.

Tangelo runs these expanded web applications with a special purpose webserver, built on top of CherryPy, which runs the Python scripts on demand, allowing your HTML and JavaScript to retrieve content from the scripts. The result is a rich web application that pairs your data with cutting-edge visual interfaces.

Tangelo comes bundled with some great examples to get you started. Mix and match from the following to create your own breed:

  • Bootstrap to put your app's style on a solid footing.
  • D3 for constructing all manner of dynamic and animated charts.
  • Vega, a brand new declarative language for defining visual interfaces.
  • MongoDB for a flexible, speedy NoSQL backend to feed data to your apps.
  • Bundled Tangelo plugins, providing utilities such as streaming of big data, basic visualization elements such as interactive charts, and user interface elements.

Get Started

Quick Start

To get started with Tangelo's example application pack, run the following:

$ pip install tangelo
$ tangelo --examples

and then visit http://localhost:8080 in your favorite web browser.

Hello World

Follow these steps to create an extremely simple Tangelo application:

$ mkdir hello
$ cd hello
$ vim helloworld.py
import datetime

def run():
    return "hello, world - the current time and date is: %s\n" % (datetime.datetime.now())
$ tangelo --port 8080
$ curl http://localhost:8080/helloworld

hello, world - the current time and date is: 2015-03-31 14:29:44.29411

Learn More

See Tangelo's documentation for a getting started guide, advanced usage manual, step-by-step tutorials, and API descriptions.

Read our ongoing blog series for some in-depth discussion of Tangelo and its uses.

Visit the website to learn about Tangelo and its sibling software projects in the TangeloHub platform, and about how Kitware can help you make the most of your data, computational resources, and web applications.

Get Involved

Please join our mailing list to ask questions about setting up and using Tangelo.

Fork our repository and do great things. At Kitware, we've been contributing to open-source software for 15 years and counting, and want to make Tangelo as useful to as many as possible.

Acknowledgement

Tangelo development is sponsored by the Air Force Research Laboratory and DARPA XDATA program.

tangelo's People

Contributors

aslagle avatar cjh1 avatar cpatrick avatar jason-li avatar jbeezley avatar jeffbaumes avatar manthey avatar mathstuf avatar patricktgill avatar scotthaleen avatar waxlamp avatar zackgalbreath avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tangelo's Issues

Spaces cause errors in loading - NER example

Load any text file with a space in it's title. You'll get the following javascript error.

Uncaught Error: SyntaxError: DOM Exception 12 d3.v2.min.js:2

Could be as simple as a path needing quotes?

NEDspaceerror

VegaLab "Data Histogram" demo does not zoom to selection correctly

While the "zooming" function works properly, and shows a new histogram based only on the selection, the bounds of the new selection are not recorded anywhere, so when the user attempts to zoom in on a (sub)selection, the selection is treated as though it were describing a range in the ORIGINAL histogram. To solve this, we need a stack of bounds (if we want the ability to zoom out again).

Place error checking in web application on AJAX calls

The AJAX calls should never fail in the AJAX sense, but they may return bad results. These are signalled by an "error" field in the response object. Whenever an AJAX call returns, the callback ought to check the error code and raise an exception if it indicates a problem, before sending the results along to processing code.

This issue should be resolved on branch python-json.

Slider callback control

Need finer control over slider callbacks:

-don't force user to install callbacks at construction time; allow "setCallbacks()", "setChangeCallback()", etc. functions instead

-allow for suspension of callback execution somehow: "enableCallbacks(false)" etc.

NER better descriptions

Explain how to use the controls. This can be centralized or use fading popovers on controls.

Style Phylotree app like the others, including descriptive text placard

Text from Steven: "This app makes use of the new Phylomongo module which generates trees (phylogenic or otherwise) from mongo documents. Given a search input(s) for rooting the tree (based on unique identifiers or attribute characteristics) a user selects a node. All children and grandchildren up to n levels are returned.

The example app uses this data to create a horizontal dendogram/cladogram rendering of the phylogenic tree. A user can select children to dynamically load it's children or select parents to collapse all children of that node."

SSCI demo doesn't display correctly in Firefox

Something seems to be off with the "viewport" - at the start, some of the display can be seen in a small rectangle in the upper left corner. The DOM inspector shows that an SVG element exists in that corner, but its extent is shown to be a rectangular area in the center of the page, but invisible, as though it is being hidden by some other element on the page.

css styling for links

highlight in focus color on mouseover, and don't leave visited links in a different color

Create infrastructure for different landing pages based on JSON-encoded metadata

  • Title, description for landing page in "top-level" JSON file
  • Also includes "pointers" to directories containing apps.
    • App directories can contain their own JSON files containing their own descriptive text, etc.
  • index.js, arbor.js, etc. will open a particular "top-level" JSON file and create a web page based on what it finds.

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.