Code Monkey home page Code Monkey logo

helium.io's People

Contributors

cgrotz avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

mdse

helium.io's Issues

Implement local data cache

Implement a local data model, with synchronisation from the server side.

This would allow the offline usage of roadrunner.

  • RPC mechanism ( Predecessor: #30 )
  • Local data model
  • Add local rule validation
  • Data synchronisation from remote master to local client

Add vert.x (maybe replace netty) verticle

Adding a vert.x verticle variant would be great, because then sock.js could be easily used for communicating with the server, which would improve browser support enormously.

Change Query API

In the implementation for #3 the query API was added in a way that checked the changes reported by the changelog on wether or not the data fits the query and than distributes the event to the frontend.

This behaviour needs to be changed in a way that changes to the data are distributed in this way.

Data Node didn't match query -(change)-> Data Node matches query --> Distribute Query Child Added Event
Data Node matched query -(change)-> Data Node still matches query --> Distribute Query Child Changed Event
Data Node matched query -(change)-> Data Node don't matches query anymore --> Distribute Query Child Removed Event

Change Distribution Behaviour

At the moment incoming messages are processed and messages are distributed depending on the message content.

This behaviour should be changed to distributing the changes that really happend on the persistence.

Implementation of authentication

At the moment there is no concept for authentication a user against Roadrunner.
The recommendation for running Roadrunner in a productive environment is running it with TLS/SSL.
As API, it would really like to see something similar to firebase.js oder hoodie (http://hood.ie/#docs)

// sign in
var ref = new Roadrunner('http://localhost:8080/');
ref.login('name', 'secret');
// or with a generated secret
ref.login('secret');

// sign out
ref.logout();

// the data for the authenticated user
ref.auth.username;

Create Unit Tests

  • Unit tests for all components should be created.
  • Phantom.js testing of the javascript client

Handler for client disconnect required

As a developer i would like to handle the disconnecting of a client.

I would like to be able to attach commands to a reference that should be executed, when the client disconnects from roadrunner.

   myDataRef.onDisconnect().remove();
   myDataRef.onDisconnect().set({connected: false});
   myDataRef.onDisconnect().update({connected: false});
   myDataRef.onDisconnect().push({msg: 'Client disconnected'});

Remove netty support

Due to vert.x support i don't see a reason to keep the netty support.

Netty project needs to be removed as well as netty references in the documentation

Replace communication model with rpc mechanism

At the moment the communication is done asynchronously via sending messages.

This should be replaced with an RPC mechanism. This is a precondition for allowing the possibility to hold a local state of the data and synchronize it.

Cleanup codebase

I believe there are some duplicate classes ans methods. This should be cleaned up.

Change URL Scheme

Change the URL Scheme for the following:

  • Roadrunner Reference: http://<server_name>/users/batman/name
  • HTML View (Generic): http://<server_name>/users/batman/name
  • JSON View: http://<server_name>/users/batman/name.json
  • XML View: http://<server_name>/users/batman/name.xml

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.