Giter VIP home page Giter VIP logo

coral's Introduction

Coral

A websocket based server for building real time apps. This is specifically focusing on Apps which require the Fact Table notifications to be sent to Dimension side consumer. One example is: Order update notifications to restaurants.

Features

  1. Simple to operate. Built in docker image.
  2. Completely open source so easy to customize for your own Fact and Dimensions Table.
  3. Complete support for cloud environment.
  4. Session Management (expiry and multiple concurrent session handling)
  5. Achieves low latency through go channels and routine support.

This is current in Development

Requirements

  1. golang > 1.12
  2. Google cloud account

Running the server

Below instructions have been tested on Ubuntu. MAC and windows operating system users might have to changes things according to their Operating System guidelines.

Using command line

  1. clone the repository.

  2. From the Coral directory run the command

    go build -o coral pkg/coral.go
    
  3. Set the Google cloud credential file with command

    export GOOGLE_APPLICATION_CREDENTIALS=<PATH_TO_CREDENTIAL_FILE>
    
  4. Run the build binary file. By default this would pick dev properties file. which you have to change.

    ./coral
    
  5. Once the server is running you can open the client.html to test the server as showing in demo

Using docker

  1. Clone the repository.

  2. Docker file is included just run the command

        docker build -t coral:1.0 .
    
  3. Once the docker container is build you can run through docker command. Ensure that Google Application credential environment variable is set appropriately.

  4. Now again use the client.html to connect and test it yourself.

Demo

In this demo we are showing on one side if we user is placing an order and there are two devices installed in restaurant. Both of those devices are getting updates.

coral_demo

For full demo you can see it on youtube: https://www.youtube.com/watch?v=wfMiPu1FEJk

Use-case

If you have use case for a server which is maintaining lot of persitent connection to lot of devices. For example Tablets and Mobile phone app which need real time updates over websocket.

Currently the coral server is used by OrderMaster.ca which order notifiations to retaurants.

CoralServer

coral's People

Contributors

catchkvs avatar

Watchers

 avatar

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.