Coder Social home page Coder Social logo

sanchezcarlosjr / evanotebook Goto Github PK

View Code? Open in Web Editor NEW
20.0 4.0 6.0 81.81 MB

EvaNotebook - A P2P Browser-Based Computational Notebook for Real Systems with IA.

Home Page: https://notebook.sanchezcarlosjr.com/

License: MIT License

JavaScript 29.54% CSS 4.27% HTML 2.03% TypeScript 64.16%
eva javascript notebook-jupyter

evanotebook's Introduction

EvaNotebook

EvaNotebook is a computational notebook specifically designed to operate solely within a browser environment, without the need for a client-server architecture. Its design lends itself to the development of prototypes, experimental processes, and system scenarios with a main emphasis on multilingual programming for event-driven architectures. It achieves this with the assistance of a decentralized database and incorporates various application protocols, including WebRTC, WebSockets, and MQTT, providing a higher level of abstraction.

EvaNotebook

🌐 Demo Link:

πŸ”₯ Key Features:

  • User-friendly WYSIWYG interface inspired by Notion (EditorJS)

  • Since real applications are reactive ones rather than static ones, so it offers simplified APIs for MQTT, WebRTC, HTTP, and WebSocket protocols based on RxJS.

  • Independent web workers for enhanced performance and stability

  • Secure P2P collaboration with custom replication (RxDB and libp2p) but offline first

  • Reactive elements like reactive charts, forms, and notebook itself. You can use them with LangChain.

πŸ—ΊοΈ Roadmap:

  • Implement Bluetooth, gRPC, GraphQL and SSH protocols. Call your operating system from a browser should be possible securely.
  • Bypass transparently CORS restrictions.
  • Integrate Langchain to control whatever environment you want (including the notebook itself) in real-time using the different protocols and languages provided by libp2p. Integrate offline large models such as WebGPT.
  • Built-in open source alternatives to commercial AI products.
  • Jupyter Notebook format complaint.

Why?

webGPT Credits WebGPT.

Alternatives

ObservableHQ

Starboard notebook

JSNB

Dnotebook

Kajero

Jbook

Runkit

Jupyter Lite

Mirrors

Contribuitors

This project was generated with Angular CLI version 15.1.5.

Development server

Run npm run start for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.

CodeBlock scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.

Acknowledgements

"Archivo:Edit icon (the Noun Project 30184).svg - Wikipedia, la enciclopedia libre." 15 Mar. 2023, es.m.wikipedia.org/wiki/Archivo:Edit_icon_%28the_Noun_Project_30184%29.svg. Based on these projects. https://github.com/alangpierce/sucrase https://github.com/binji/wasm-clang https://babeljs.io/docs/en/babel-standalone https://infinitexyy.github.io/playcode/

evanotebook's People

Contributors

sanchezcarlosjr avatar

Stargazers

 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

evanotebook's Issues

Share your Notebooks

Share your notebooks here.

Please remove your API keys or tokens before sharing your notebook here.

Questions!

Hey,

I've been looking to contribute, and couldn't figure out a couple of things. I'd really appreciate you answering a couple of questions related to my future contribution so as to ensure that my future pull request can be merged.

  1. What is the idea behind topic and peer? And which relates to uuid (because I saw cases of both using uuid)? Admittedly, this question is probably on the dumber side since I have yet to spend a decent number of hours understanding editorjs. For my plan, I want to build an import and export toolkit for markdown, html, text, docx, github through the unified library. I'm currently testing using the injector for database via specifically creating random id, topic, and createdBy/lastEditedBy and inadvertendly random peers and topics. This approach is probably not correct, but using the Shell class seems even messier, since I want to add to the current file or specified files alongside sending a thousand CustomEvents seems like a decent way to crash. Any thoughts on how to approach this?
  2. What is the purpose of the form component in src/app/notebook/form? I had a couple of guesses, such as its relation to localhost:3000/form or the use of jsonforms (which I would appreciate you didn't depend on since it is old and the main dependency preventing updating Angular to 16), but I don't even know the purpose of these two parts either. I plan to remove this component in my pull request, if it is okay? Later, I plan to update to Angular 16.
  3. I've seen similar projects, including Standard Note, and believe the use of componentization is going to be soon necessary. You have a process worker, a shell process worker, a database with SQL (we really need SQL), and dozens of components related to coding. Would you be open to me fixing up the componentization? I would appreciate being added as a contributor in such a case.
  4. Lastly, I plan to use a devcontainer folder instead of .gitpod.yml, would that be okay?
  5. There is also many, many unnecessary // @ts-ignore. I plan to add a .eslintrc file and fix up the code quality. Would that be alright?

Thanks for answering my questions, and I hope my contributions are successful.

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.