ThatOpen / web-ifc-viewer

Graphics engine and toolkit for client applications.
MIT License
947 stars 235 forks source link

Real time communication between ifc web viewer and web apps #191

Closed jstec closed 1 year ago

jstec commented 1 year ago

We offer a 600$ bounty for implementing this funcionality:

  1. Overview

In a generic way it is about implementing a real-time communication system between web applications. These applications "chat" among themselves sending messages in json format. The goal is that the ifc.js web viewer can communicate with another web application and vice versa. Communication can be 1-N : • A web application can send messages to N web viewers. • A web viewer can only send messages to an application. • A web application can receive messages from N web viewers. • A web viewer can only receive messages from an application.

The exchange of messages does not involve any server but is carried out directly between browsers, between tabs in the same browser or between tabs and other browsers. To implement this system of communication between browsers, WebRTC technology will be used. In the signaling process, handshake to initiate communication, neither STUN nor TURN servers will be used, since the communication is performed within the same machine. WebRTC technology allows video, audio and text communication, only text communication (json messages) is used.

  1. Functional requirements

2.1. An application displays an ifc Description The APP1 web application wants to display an ifc file. A new browser tab or window is created where the IFCViewer1 web viewer displays the file. A two-way communication channel is established between APP1 and IFCViewer1.

Acceptance criteria • The application can open the web viewer in a tab of the same browser. • The application can open the web viewer in a separate window. • The application tells the viewer the url of the ifc to be displayed. • The viewer downloads the ifc file and show it. • A unique two-way communication channel is created between the APP1 application and the IFCViewer1 viewer.

2.2. An application displays more than one ifc Description The APP1 application has already displayed an ifc according to "An application displays an ifc" now from the same application you want to display a second ifc.

Acceptance criteria • The application can open the web viewer in a tab of the same browser showing the second ifc. • The application can open the web viewer in a separate window showing the second ifc. • The application tells the viewer the url of the ifc to display. • The viewer downloads the ifc file and displays it. • A new unique two-way communication channel is created between the APP1 application and the IFCViewer2 viewer. • Messages sent by the APP1 application are received by IFCViewer1 and IFCViewer2. • Messages sent by IFCViewer1 are received by APP1. • The messages sent by IFCViewer2 are received by APP1.

2.3. An application close communication Description The APP1 application has opened the IFCViewer1 and IFCViewer2 viewers. The browser tab or window corresponding to APP1 is closed, the communication channels APP1<->IFCViewer1 and APP1<->IFCViewer2 are closed.

Acceptance criteria • When the APP1 application is closed, the communication channels APP1<->IFCViewer1 and APP1<->IFCViewer2 are closed. • Before the channels are closed, a message is sent to IFCViewer1 and IFCViewer2 notifying the communication is closed. • IFCViewer1 and IFCViewer2 receive the communication closing message and can decide whether to close their tab or window as well.

2.4. A web viewer close communication Description We have the APP1 application has opened two IFCViewer1 and IFCViewer2 web viewers. The IFCViewer1 tab or window closes and therefore the APP1<->IFCViewer1 communication channel is also closed.

Acceptance criteria • Closing IFCViewer1 closes the communication channel APP1<->IFCViewer1 • Before IFCViewer1 closes the communication channel APP1<->IFCViewer1 sends a message to APP1 notifying the closure of the communication. • Bi-directional communication between APP1 and IFCViewer2 keeps alive.

  1. Non Functional requirements

3.1. Message format Description JSON messages are as follows: { "payload": { message content here } "status": { "returncode": 0, "messages": [ { "code": 0, // message code "message": "message text here" }, ... { "code": N, // "message": "message text here" } ] } }

aka-blackboots commented 1 year ago

::take

agviegas commented 1 year ago

🟢🟢🟢

::take

Hi, @aka-blackboots! Thanks for taking this bounty! The due date is April 5, 2023 UTC.

If you need to submit some pull requests (PR) to complete the tasks, make sure that the last and only the last PR has a title that either starts with the bounty ID or is exactly the same as the bounty name. After the PR is merged, this bounty’s status will automatically changed to done.

If you do not need to make a PR, tell the manager @agviegas to run ::done command after your tasks is confirmed to be done.

Good luck!

aka-blackboots commented 1 year ago

::drop

agviegas commented 1 year ago

🟢🟢🟢

::drop

Hi, @aka-blackboots! Thanks for giving it a try! It’s now once again available for anyone to take.

jstec commented 1 year ago

Hi, why the bounty is unassigned? Is there any problem?

agviegas commented 1 year ago

@jstec the bounty is open and anyone can take it, but we can't force anyone to do it. People freely take bounties that they want to do.

jstec commented 1 year ago

I'm sorry i thought the bounty was already assigned and was unassigned. My mistake.

avirads commented 1 year ago

::take

agviegas commented 1 year ago

🟢🟢🟢

::take

Hi, @avirads! Thanks for taking this bounty! The due date is April 26, 2023 UTC.

If you need to submit some pull requests (PR) to complete the tasks, make sure that the last and only the last PR has a title that either starts with the bounty ID or is exactly the same as the bounty name. After the PR is merged, this bounty’s status will automatically changed to done.

If you do not need to make a PR, tell the manager @agviegas to run ::done command after your tasks is confirmed to be done.

Good luck!

avirads commented 1 year ago

i have completed the task. how can we proceed further?

avirads commented 1 year ago

::done

avirads commented 1 year ago

@jstec hello..I'm ready to demo the functionality.

jstec commented 1 year ago

Hi, I have been on holidays i come back today, I will contact with you probably tomorrow in order to setup a demo and proceed to payment.

Regards,

Jose Souto


De: avirads @.> Enviado: lunes, 10 de abril de 2023 18:26 Para: IFCjs/web-ifc-viewer @.> Cc: Jose Souto @.>; Mention @.> Asunto: Re: [IFCjs/web-ifc-viewer] Real time communication between ifc web viewer and web apps (Issue #191)

@jstechttps://github.com/jstec hello..I'm ready to demo the functionality.

— Reply to this email directly, view it on GitHubhttps://github.com/IFCjs/web-ifc-viewer/issues/191#issuecomment-1502026545, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJU4LYDUM7K2GY6AMMSZ5SLXAQYD7ANCNFSM6AAAAAAVF7X5MI. You are receiving this because you were mentioned.Message ID: @.***>

avirads commented 1 year ago

Ok.. pls send the demo invite to avirads at Gmail dot com. I am available today.

jstec commented 1 year ago

Hi avirads,

I setup a teams for friday 14 at 13:00.

https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODZjNjA3Y2YtZDk4Ni00ODFmLWFjZDMtZWRjMDcyYTgwYmNm%40thread.v2/0?context=%7b%22Tid%22%3a%22d357f9e6-870a-46d1-b83c-c4c0a38f99a6%22%2c%22Oid%22%3a%22c8c825bb-1911-4840-8d3a-0b3ecf2db9a1%22%7d

Let me know if it's ok for you.

Thank you,

Jose Souto


De: avirads @.> Enviado: miércoles, 12 de abril de 2023 12:14 Para: IFCjs/web-ifc-viewer @.> Cc: Jose Souto @.>; Mention @.> Asunto: Re: [IFCjs/web-ifc-viewer] Real time communication between ifc web viewer and web apps (Issue #191)

Ok.. pls send the demo invite to avirads at Gmail dot com. I am available today.

— Reply to this email directly, view it on GitHubhttps://github.com/IFCjs/web-ifc-viewer/issues/191#issuecomment-1505019708, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJU4LYEF7NP2RZ4QLXHLJ7TXAZ57JANCNFSM6AAAAAAVF7X5MI. You are receiving this because you were mentioned.Message ID: @.***>

jstec commented 1 year ago

Hi again:

I will need a receipt in order to proceed to payment if everything is all right.

Regards,

Jose Souto


De: Jose Souto @.> Enviado: miércoles, 12 de abril de 2023 16:39 Para: IFCjs/web-ifc-viewer @.> Asunto: RE: [IFCjs/web-ifc-viewer] Real time communication between ifc web viewer and web apps (Issue #191)

Hi avirads,

I setup a teams for friday 14 at 13:00.

https://teams.microsoft.com/l/meetup-join/19%3ameeting_ODZjNjA3Y2YtZDk4Ni00ODFmLWFjZDMtZWRjMDcyYTgwYmNm%40thread.v2/0?context=%7b%22Tid%22%3a%22d357f9e6-870a-46d1-b83c-c4c0a38f99a6%22%2c%22Oid%22%3a%22c8c825bb-1911-4840-8d3a-0b3ecf2db9a1%22%7d

Let me know if it's ok for you.

Thank you,

Jose Souto


De: avirads @.> Enviado: miércoles, 12 de abril de 2023 12:14 Para: IFCjs/web-ifc-viewer @.> Cc: Jose Souto @.>; Mention @.> Asunto: Re: [IFCjs/web-ifc-viewer] Real time communication between ifc web viewer and web apps (Issue #191)

Ok.. pls send the demo invite to avirads at Gmail dot com. I am available today.

— Reply to this email directly, view it on GitHubhttps://github.com/IFCjs/web-ifc-viewer/issues/191#issuecomment-1505019708, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJU4LYEF7NP2RZ4QLXHLJ7TXAZ57JANCNFSM6AAAAAAVF7X5MI. You are receiving this because you were mentioned.Message ID: @.***>

agviegas commented 1 year ago

@jstec will you pay @avirads directly?

jstec commented 1 year ago

Hi Antonio,

I dont know to proceed, just tell me whats the standard procedure and i will do in that way.

Regards,

Jose Souto


De: Antonio González Viegas @.> Enviado: jueves, 13 de abril de 2023 12:52 Para: IFCjs/web-ifc-viewer @.> Cc: Jose Souto @.>; Mention @.> Asunto: Re: [IFCjs/web-ifc-viewer] Real time communication between ifc web viewer and web apps (Issue #191)

@jstechttps://github.com/jstec will you pay @aviradshttps://github.com/avirads directly?

— Reply to this email directly, view it on GitHubhttps://github.com/IFCjs/web-ifc-viewer/issues/191#issuecomment-1506754707, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJU4LYHZ27FFL45GNZXDBCTXA7LFDANCNFSM6AAAAAAVF7X5MI. You are receiving this because you were mentioned.Message ID: @.***>

agviegas commented 1 year ago

@jstec you can arrange it directly with @avirads. That way, you don't depend on us to make the payment.

jstec commented 1 year ago

OK Antonio i will pay directly to @avirads.

Regards,

Jose Souto


De: Antonio González Viegas @.> Enviado: jueves, 13 de abril de 2023 13:45 Para: IFCjs/web-ifc-viewer @.> Cc: Jose Souto @.>; Mention @.> Asunto: Re: [IFCjs/web-ifc-viewer] Real time communication between ifc web viewer and web apps (Issue #191)

@jstechttps://github.com/jstec you can arrange it directly with @aviradshttps://github.com/avirads. That way, you don't depend on us to make the payment.

— Reply to this email directly, view it on GitHubhttps://github.com/IFCjs/web-ifc-viewer/issues/191#issuecomment-1506825117, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJU4LYGSG4HE75DWBVJDQDDXA7RO7ANCNFSM6AAAAAAVF7X5MI. You are receiving this because you were mentioned.Message ID: @.***>

agviegas commented 1 year ago

🔴🔴🔴

Hi, @avirads! The date is past due, your assignment has been revoked. It’s now available for anyone to take.

avirads commented 1 year ago

::done

avirads commented 1 year ago

::take

agviegas commented 1 year ago

🟢🟢🟢

::take

Hi, @avirads! Thanks for taking this bounty! The due date is May 19, 2023 UTC.

If you need to submit some pull requests (PR) to complete the tasks, make sure that the last and only the last PR has a title that either starts with the bounty ID or is exactly the same as the bounty name. After the PR is merged, this bounty’s status will automatically changed to done.

If you do not need to make a PR, tell the manager @agviegas to run ::done command after your tasks is confirmed to be done.

Good luck!

avirads commented 1 year ago

::done

aka-blackboots commented 1 year ago

Hey, @avirads @jstec what is the status?

avirads commented 1 year ago

This is done and delivered to Jose.

On Tue, 2 May, 2023, 9:23 pm blackboots, @.***> wrote:

Hey, @avirads https://github.com/avirads @jstec https://github.com/jstec what is the status?

— Reply to this email directly, view it on GitHub https://github.com/IFCjs/web-ifc-viewer/issues/191#issuecomment-1531716385, or unsubscribe https://github.com/notifications/unsubscribe-auth/AE6NO3OX5KUG3L2RO6DOBJ3XEEUYVANCNFSM6AAAAAAVF7X5MI . You are receiving this because you were mentioned.Message ID: @.***>

aka-blackboots commented 1 year ago

Great. Has the payment been made? I'll update the bounty accordingly.

avirads commented 1 year ago

Yes..payment made too. Please close this. Thanks.

On Tue, 2 May, 2023, 9:55 pm blackboots, @.***> wrote:

Great. Has the payment been made? I'll update the bounty accordingly.

— Reply to this email directly, view it on GitHub https://github.com/IFCjs/web-ifc-viewer/issues/191#issuecomment-1531765494, or unsubscribe https://github.com/notifications/unsubscribe-auth/AE6NO3P72BRLJ4E6YOBZBYLXEEYPJANCNFSM6AAAAAAVF7X5MI . You are receiving this because you were mentioned.Message ID: @.***>

aka-blackboots commented 1 year ago

Done🚀