Skip to content

Latest commit

 

History

History
83 lines (81 loc) · 2.9 KB

README.md

File metadata and controls

83 lines (81 loc) · 2.9 KB

nbook

Beautiful notebook for javscript enthusiasts, data analysts and more.

This project is under active development and it has no stable release yet.

TODO

  • General
    • Dockerization
    • Use json-rpc on top of socket.io instead of only events
    • Publish on dockerhub
    • Publish server on npm
    • Write better readme
    • Write documentation
    • Write some typescript declarations for packages
    • Authentication
    • Notebook Auto-save
    • Notebook Auto-backup
    • Notebook versioning / checkpoints
    • SSR for notebook renderers
    • Service worker for cache and handling offline
    • Add more examples
    • Use linux namespaces (or docker) for runtime isolation
  • File explorer
    • File navigation
    • Open notebook from file explorer
    • Filesystem CRUD
  • Notebook editor
    • Code editor using Microsoft Monaco Editor
    • Visualization mode
    • Show runtime resource usage
    • Hotkeys for saving and running block
    • Allow user to reload runtime
    • Allow user to run garbage collector on runtime process
    • Allow user to disable edition (Lock Block)
    • Allow user to disable cache for a block
    • Allow user to mark block as visible in visualization mode
    • Allow user to mark block for running out of the main block context
    • Print button
    • Show timings for blocks
    • Show code suggestions and docs considering context and installed packages
    • Stop button
    • Cache renderer assets
    • Show runtime log
    • Repl mode
    • Locked editor mode (lock full view)
    • Allow user to move blocks (reorder)
    • Allow user to mark block as disabled (runtime should not run that block)
  • Notebook runtime
    • Allow top-level await on blocks
    • Block level cache
    • Block level error handling
    • Register block timings
    • Install npm packages from block
    • Require npm packages and js/json files from block
    • Programmatically stop execution
    • Programmatically skip block execution
    • Add functionality to export block results to the frontend
    • Store and provide secrets
    • Skip disabled blocks
    • Block level logging
    • Block breakpoints and debugging
    • Secure access to filesystem
  • Packages
    • @nbook/core (runtime)
    • @nbook/md (markdown renderer)
    • @nbook/plot (chart.js data renderer)
    • @nbook/table (data table renderer)
    • @nbook/request (synchronic requests for nbook)
    • @nbook/result (move from @nbook/core)
    • @nbook/dev (toolkit for nbook package development)
    • @nbook/p5 (processing.js renderer)
  • Examples
    • Install packages from block
    • Results
    • Secrets
    • @nbook/request
    • @nbook/plot
    • @nbook/md
    • @nbook/table
    • mongodb connection
    • mysql connection
    • google spreadsheets connection
    • access filesystem