influxdata / flux

Flux is a lightweight scripting language for querying databases (like InfluxDB) and working with data. It's part of InfluxDB 1.7 and 2.0, but can be run independently of those.
https://influxdata.com
MIT License
767 stars 154 forks source link

A web-based integrated development environment (IDE) for Flux #953

Open ebb-tide opened 5 years ago

ebb-tide commented 5 years ago

This is a potential project proposal for Google Summer of Code 2019 Interns.

A web-based integrated development environment (IDE) for Flux

Flux is a new open source programming language for querying and manipulating data.

We are building Flux as a replacement to the SQL-based query-only language we were previously exposing to users for querying the data that lives in their InfluxDB database. Flux was designed to not only query data, but also provide functions for users to manipulate and process the data. See this blog post by our founder and CTO Paul Dix, for the reasoning behind why we're building Flux.

One of the design goals of Flux is to provide an excellent developer experience, whether you are brand new, or more experienced with Flux. To that end, in this project we will build a web-based IDE in the style of https://repl.it, colaboratory or matlab online. Users will be able to query a database, learn more about the Flux functions that are available, visualize the resulting data and share Flux scripts with other users.

This project will be mentored by engineers on our front end and design teams, distributed teams that work from various locations across the United States. This project requires some knowledge of javascript, a familiarity with react or comparable modern web frameworks. Students will work closely with our design and product teams to iterate through designs

alsargent commented 4 years ago

As I've been working with Flux, it's struck me that it'd be helpful to be able to step through Flux code line-by-line, and see how the raw data table changes with every step.

I've been doing this in a hacky way by commenting and uncomment lines of code, but that's not the best user experience... similar to putting a bunch of printf statements in one's c/java/go code.

In terms of UI, it'd be ideal to have the following visual elements:

1) Flux code with the ability to set breakpoints at one or more lines of code 2) A button and keyboard equivalent to step through code 3) The raw data table visible at the same time as the chart is visible 4) Ability to watch a particular column or variable in the raw data table, so that I don't have to continually scroll through the table. Highlight every instance of this variable in the visible part of the table.

... all these features are fairly standard in modern IDEs, but feel free to ask me if any questions.

github-actions[bot] commented 2 days ago

This issue has had no recent activity and will be closed soon.