/nteract

:notebook: Interactive literate coding notebook!

Primary LanguageJavaScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

nteract nteract animated logo

codecov.io Build Status slack in Documentation Coverage

Overview

Edit code cells, write markdown, visualize!

nteract geojson

Note: this isn't feature complete yet. There will be 🐛s and quirks. Please come tell us about them!

Installing

Head to the Releases page and download the version for your OS.

Scope and goals

  • Notebook environment to explore and get things done ✅
  • Standalone cross-platform desktop application ✅
  • Easy install with pre-configured Python3 and JavaScript runtimes ❌
  • Grow an ecosystem of tooling to allow others to build their own platforms relying on the Jupyter specifications 🔜

Contributing

The contributors are listed in contributors

nteract uses the C4.1 (Collective Code Construction Contract) process for contributions, with the caveat that we use the BSD-3-Clause to be in line with the rest of the scientific packages in NumFocus.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to rgbkrk@gmail.com.

Design

  • Full compliance with Jupyter message spec v5
  • Full compliance with Notebook format v4
  • Follow notebook model operations flow from commutable
  • Rely on common interfaces for kernel communication via enchannel's comm spec (Go read it!)
  • Mocks for UI can be explored in issues, while design references go in mocks
  • React for views (pushing notebook state down into the view)
  • Full node, direct to zmq (no running a Python server underneath) - you still get Python kernels though!

Development

To get started developing install a python runtime then install nteract itself.

Python runtime

At least for now, we need the python 3 kernel installed when hacking on nteract:

python3 -m pip install ipykernel
python3 -m ipykernel install --user

Install nteract itself

Requires node 6.x and npm 3.

  1. Fork this repo
  2. Clone it git clone https://github.com/nteract/nteract
  3. cd to where you cloned it
  4. npm install
  5. npm run start

Build Documentation

You can run nteract's documentation generator by running

npm run build:docs

And then opening docs/index.html in your favorite browser.

Troubleshooting

I upgraded my developer installation and things are broken!

  • Try $ rm -rf node_modules then $ npm install

Frontend background

As much as possible, we'd like to get people speaking a common language for development of nteract components and packages.

Core tech behind the scenes:

These are our suggested tutorials and background to help you get up to speed:

Depending on where you plug yourself in, you may find the introduction to Reactive programming is the biggest help.

If you'd like to experiment with the core Jupyter messaging and Observables without working with React, check out ick, an interactive console.

Post in Slack if you need help with these or have questions. Several people are working through tutorials right now and would love a study group! If you have trouble creating an account, either email rgbkrk@gmail.com or post an issue on GitHub.

Support

Sponsors

Work on the nteract notebook is currently sponsored by

Plotly

Domino Data Lab

We're on a common mission to build a great notebook experience. Feel free to get in touch if you'd like to help. Resources go towards paying for additional work by seasoned designers and engineers.

Made possible by

The nteract project was made possible with the support of

Carina by Rackspace.

If your employer allows you to work on nteract during the day and would like recognition, feel free to add them to the "Made possible by" list.