Coder Social home page Coder Social logo

vs4vijay / aesir Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 425 KB

A Realtime Collaboration App using Socket.io

Home Page: https://aesir.vercel.app

Shell 0.85% Dockerfile 3.71% JavaScript 87.44% HTML 7.99%
nodejs javascript socket-io socket realtime realtime-apps microservice p5js processing

aesir's Introduction

Realtime Sync

Deployed Version: https://realtime-sync.herokuapp.com/

Functionalities

  • User can use 3 sliders to rotate the Cube on X, Y or Z Axis
  • Clicking on Button and Anywhere on the canvas changes the color of Cube randomly
  • Any other clients connected at the same time will receive all the events and changes will be reflected instantly

Tech. Stack

  • NodeJS + Express for APIs and Serving Static Files
  • Socket.io for Real Time Communication
  • Processing (p5.js) for Drawing UI
  • Docker for Containerization

Limitations

  • Currently, only default namespace is used, but We can make use of socket.io's rooms option to make multiple rooms
  • Since Socket.io can use WebSockets or Long Polling (If client doesn't support WebSockets), then Auto Scaling won't be possible by default. We might need to use Sticky Session on Load Balancer to Work properly

Future Enhancements

  • Can have multiple rooms/channels functionalities
  • Cube drawing can be enhanced
  • framerate is currently set as 30 FPS, this can be configured from "FRAME_RATE" config variable in "public/client-app.js"
  • Frontend App codebase ("/public" folder) can be made modular
  • Currently using Structured Logging (from pino logger), but We can have an Event Store (Part of Event Sourcing Implementation) on Server side which will track all the events published
  • Can use Redis Adapter to Scale out application on multiple nodes

Other Alternatives

  • WebRTC
  • Pusher
  • Deepstream.io
  • Firebase

Development Notes

aesir's People

Contributors

renovate-bot avatar snyk-bot avatar vs4vijay avatar

Stargazers

 avatar

Watchers

 avatar

aesir's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
docker-compose.yml
dockerfile
Dockerfile
  • node 14.15.3-alpine
npm
package.json
  • dotenv ^8.2.0
  • express ^4.17.1
  • pino ^6.5.1
  • socket.io ^4.0.1
  • node 12.22.x

  • Check this box to trigger a request for Renovate to run again on this repository

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.