Implement web workers in an open-source javascript visualisation library
€30-250 EUR
Cerrado
Publicado hace más de 7 años
€30-250 EUR
Pagado a la entrega
IMPORTANT:
To do this project you need to know Javascript (ES 6), and be familiar with Web Workers, Gulp, and git. You are expected to be confident with development, and how to design a JS apps, and can understand what needs to be done without function-per-function spec (eg. if you do not know how a web worker works, you are expected to go to the official HTML5 documentation).
CONTEXT:
[login to view URL] ([login to view URL]) is an open-source library to draw charts and 2D network graphs. To render such 2D graph networks, coordinates of a set of points have to be computed using a graph layout algorithm.
If you have no idea what this is, here is an example: [login to view URL]
These kind of algorithms are very CPU intensive, a problem in web browsers where Javascript programs are single threaded unless you use web workers: when computing a large graph in [login to view URL], other JS functions will freeze.
GOAL:
The goal of this project is to modify the open-source [login to view URL] library to run its graph layout algorithms (priority for the "force atlas" layout) in the background by wrapping then in a web worker.
This web worker should communicate with the main rendering thread (the web page) through the web worker API, and only transmit the strict minimum: the coordinates of points that have been computed.
If the data model changes (eg. new nodes are added or deleted) the web worker shoudl be updated as well.
DELIVRABLE:
The expected deliverable is a zip folder published on Freelancer, containing a version of [login to view URL] that supports graph layout running in a web worker, effectively improving the performance of the rendering.
You will release your code under the same licence as the original [login to view URL] project (dual licence Apache 2.0 and MIT).
The first user will be me (I am using [login to view URL] in a project), but you are *strongly* encouraged to also put your branch on GitHub and submit a Pull Request to the original [login to view URL] project so that everybody can benefit from it!
TO HELP YOU:
To implement the web worker system, you can have a look at some old code of a previous attempt:
- here: [login to view URL]
- and here: [login to view URL]
You can also take inspiration from this other open-source library:
[login to view URL]
Here are the some of steps that you may have to follow:
- fork the “develop” branch of [login to view URL] from GitHub
- understand how graph layout work through the documentation / source of [login to view URL]
- modify the code so that the graph layout algorithm can run from a web worker
- allow some control over performances, if it makes sense (for instance a refresh frequency parameter)
- make sure existing unit tests pass with your changes
- finally, you are encouraged to publish your code on github and submit a Pull Request to the original [login to view URL] project to share with the community! (see [login to view URL])
Hello,
DON'T AWARD PROJECT BEFORE DISCUSSION, am understand almost your project but I have few questions to ask, knock me for further discussion, we have 5 years experience in this skills thank you!
Hi.
I have reread your job description with care and I can do this job on time because I have much experience of Javascript for 10+ years and most notably visualizing data using it.
Personally you give much contents for developer to be easy for developing this project, so I can complete this job ASAP.
I am look forward to hearing from you.
Best Regards
Hello,
We have pool of dedicated team consisting of certified developers capable enough to handle your project exactly according to requirements and within said time frame.
As per shared project description we find ourselves fit for project work, as we have developed several projects with approx. similar features and functionalities.
Looking forward for small conversation to discuss your complete scope of work and suggest/recommend you complete solution.
Thanks