p-raj / v3-docs

Documentation and wiki for the complete platform
2 stars 0 forks source link

MON-FRI \ 19th-23rd \ 26th-31st \ DEC 2016 #24

Closed peeyush-tm closed 7 years ago

peeyush-tm commented 7 years ago

Updated Work Details

@veris-ankitpopli @veris-neerajdhiman - you have put in a good effort in understanding - ST2, mistral, workflow engine, Rabbit MQ, Kong. That gives you a broader perspective of the ecosystem and possibility of building a platform, that would come in handy.

Forget about - Mistral and ST2 for some time To read - Pushpin

Component Use
Kong - manage HTTP resources
" - manage authentication and authorization
" - manage subscription and rate-limiting
" - manage resource level caching
API G/w - manage the call and response to microservices
Proc. G/w - is a router of widgets and processes
" - provide Widgets to client side
" - provide Widget and process status to the client side
" - asks client for data
" - sends client for data
" - manages the session and state for widgets and processes
" - calls the API g/w, based on various conditions
" - calls the next widget, based on various conditions
Additional Components Use
Redis Session data storage
RabbitMQ MQ
PostGres Metadata storage
When? What? Why? How?
TUE ⬇️ DJ Apps - hello world Simple app, just provides data back. does not ask user for anything simple DJ app, with proper registration in Resource DB
TUE ⬇️ DJ Apps - hello jon Ask use for same as hello world
WED ✅ Maintain Sessions Store the data in Session for VRT Simple caching
~WED~ ⬆️ ~Move DJ Apps to API G/W~ Finish up TUE work & have Session Management of VRT interaction ~Setup a mechanism between Proc G/w and API G/w~ ~Simple calling~
THU ⚠️ Integrate OAuth at Proc G/W and API G/W need to setup a mechanism Kong plugins/ Auth0
THU ⚠️ Integrate Org and Member at Proc G/W and API G/W need to setup a mechanism MFA/ SMS
THU ⚠️ Build simple Member Check App just to check the mechanism to exchange widget data and identify Veris Runtime and Client
FRI ⚠️ Build complex Member Check App - check for member or MFA we have served the widgets, have maintained the session, have mechanism to serve data and ask for data, let's wrap this up by having multiple processes in a widget
FRI ⚠️ Build a complex VMS - whom to meet? , who are you ? we have everything in place, all we need to do is, check for the next widget to serve

Questions

Other Misc work

V2.x Work Details

@veris-abhinavanand @veris-amoghbanta

overview - speed of release is more important than optimization

What? Why? Where? When
Forms (JS lib) -> React Lib -> React Native Lib -> Use as Forms lib in our platform learn to port JS apps to React, so as to reuse maximum ecosystem V2
Release on App stores on WED (prepare release notes - you will be the star of the moment, choose an alias) - "I am batman" let's celebrate app launch. target it to build fast and launch fast V2 App Store WED
Integrate crashlitics properly monitor app usage and crashes properly. all the challanges a user faces are challanges to solve V2 App Store and App monitoring WED
Web terminal -> How to abstract codebase such a way that we can use nearly the same code, with same performance levels across all the platform aim is to have a product which we can ship faster

Lib Abstraction - Forms

Other Misc work

Other discussions

3bca86f1290effdd6ee59dbf7d050fc2

Previous ~Work Details~

What? Why? Where? When
~understand the data storage in ST2~ ~so as to understand how the data is consumed by the workers~ ~V3 process management~
~understand the data processing, forwarding and tracing~ ~how to serve Response Data to Client~ ~V3~
~workflow - mistral & action chain~ ~how to know what process to call and when~ ~V3~
~chat-ops and chat workflow~ ~looks like a useful reference to consider, as this is serving the user with the DATA and requesting user to FILL IN DATA~ ~V3~ ~TUE~ ❌
~Hello World~ ~a web service that just greets user. a simple widget that just displays information and nothing else~ ~V3~ ~WED~ ❌
~Hello Jon~ ~simple widget that asks user to provide information so as to greet the user properly~ ~V3~ ~THU~ ❌
~MFA~ ~complex widget, with multiple processes~ ~V3~ ~FRI~ ❌
veris-ankitpopli commented 7 years ago

29 Dec, 2016

28 Dec, 2016

27 Dec, 2016

26 Dec, 2016

23 DEC, 2016

22 DEC, 2016

21 DEC, 2016

20 DEC, 2016

:construction_worker_man: PROC G/W

19 DEC, 2016

:+1: ST2 workflows using

veris-abhinavanand commented 7 years ago

Working on forms. Needs a bit modification to allow our form types. Following field types need extra work

API integration done using https://github.com/gcanti/tcomb-form-native for forms. Completed field types

TODO integrate forms flow with existing screens handle the case for multiple form screens Adapter between our forms json to library's form object

[20 DEC, 2016]

[22 DEC]

[26 DEC]

:+1: switching between multiple form screen, screen flow integrated. :calendar: load case specific forms(in/out) :-1: BUG form data getting reset to {}.

[27 DEC]

:+1: load case specific forms(in/out) fixed BUG form data getting reset to {}. :calendar: build missing form components.

[28 DEC]

peeyush-tm commented 7 years ago

Why? - Digital Transformation

Mobile First - Done Right

What? a platform to serve Instant Apps

Only thing AMZ is not doing, is serving people with Instant App.

img_2243

How?

🤔

img_2245

@veris-ankitpopli @veris-neerajdhiman - have a discussion about the login mechanism

[21 DEC, 2016]

Veris - an Instant App Runtime provider for all the clients - terminal and users alike.

End of Login

Next

Note - TILL NOW, there is no difference between Terminal Veris Runtime and User Veris Runtime.

Based on the BADGE, we have the membership information. Based on the BADGE, we have the widget to serve information.

BADGE => Dashboard => Single Badge => Veris Runtime Terminal BADGE => Badge Switcher => Multiple Badges => Veris Runtime User

id Organization Veris Runtime widgets
1 Teramatrix TERM1 [who are you, whom to meet]
2 Teramatrix praj@teramatrix.in [who are you, parking ticket]

[20 DEC, 2016]

@veris-neerajdhiman @veris-ankitpopli - have updated the work details, please check and confirm that we would be able to ship these out.

Forget - ST2, Celery, Mistral, Pushpin - keep it simple. Just data exchange between some apps.

  1. VRT calls PROC G/W
    • req: POST
      • /VRT/1
      • data: { "session id": null, "widget": null, "state": init}
    • resp:
      • data:
        {
            "session id": "UUID", 
            "widget": {
                         "widgets": {
                                    "w1": {
                                          "p1": {},
                                          "p2": {}
                                     }
                         },
             }, 
            "state": "INIT"
        }

        basically the complete details about the widget to call, the process to call and the data required

  2. VRT calls PROC G/W, taking the next: keyword from response data
    • req: POST
      • /VRT/1/W/w1
      • data:
        {
            "session id": "UUID", 
            "widget": {
                         "widgets": {
                                    "w1": {
                                          "p1": { data = null },
                                          "p2": {}
                                     }
                         },
             }, 
            "state": "INIT"
        }
    • resp:
      • data:
        {
            "session id": "UUID", 
            "widget": {
                         "widgets": {
                                    "w1": {
                                          "p1": { data = null , state = ERROR, action = ASK USER for DATA  },
                                          "p2": {}
                                     }
                         },
             }, 
            "state": "INIT"
        }

        ~confusing statement - the most important aspect is the "next"~ ~confusing statement - the session ID would always tell the next action~

  3. we need to keep sharing the SESSION and Widget States, VRT States, Widget-Process States with the frontend
  4. Store the States in the CACHE/ SESSION

[19 DEC, 2016]

AB- my only agenda is to ship faster. Now, to ship products faster we would need a testing platform, which can basically test all the components and workflows, and as soon all the tests are passed, ship the app to all the various platforms.

Now, separate platform builds would also mean

Now, that is a problem, somewhere, in the whole system, I have to code the same thing multiple times. If we start solving the problem, that is removing the duplicity

Next?

Still, we would need separate component rendering test suites, so as to maintain the uniformity in the rendering of the component.

Learn once and write everywhere is fine, but our use case is to ship faster than fastest.

think - rendering a standard component (eg: checkbox) with a default style, provides us the required level of abstraction, given that we keep the application logic separate from react-components.

veris-neerajdhiman commented 7 years ago

[29, Dec 2016]

[Done] : Resource add with APIs, a unique end point will issued to that resource and will be used by resource. [TODO] : Integrate Resource endpoints with VRT

[27, Dec 2016]

[Done] : Plugin binding with API and overriding URL [replace complete upstream url] [No Support] - Dynamic request path not supported by kong till version 0.10 , can expect the same in next versions. For more info read https://github.com/Mashape/kong/issues/677

[26, Dec 2016]

[In Progress] : kong integrations at API G/W, Some issue sin adding plugins fo enabling duynamic urls support.

[22 Dec, 2016]

[Done] : Issue debugging on live [RnD] : OAuth implementation @ API & Process G/W

[21 Dec, 2016]

[Done] : Session/State functionality in Process gateway .

Below are the screen-shots which explains the behaviour of execution.

vrt

/***/

vrt_1

wid

/***/

widg_1

[20 DEC, 2016]

[In Progress]

[19 DEC, 2016]

[RnD] : Action Runners, Mistral and tried to make Pre-Validation Hook using Python Runner .

Discussion Notes

veris-amoghbanta commented 7 years ago

UPDATE 🎉 crashlytics is integrated in both apps, @veris-abhinavanand with help of @veris-ankitpopli has solved all the case bugs(walkin user with invite without pass, walkin user with invite bla bla bla. 🙏 { only @veris-abhinavanand can handle it}). All set for release(waiting for shailendra's green signal, he'll do a final round of testing tomorrow morning). Next target is forms and web terminal.

[19 DEC, 2016]

😞 transpiling react-native to react-dom (considering the libraries that we need and have used) is a huge headache as of now(the stage at which react-native-web libraries are at now).

🎉 made hello world app for web using react-web (https://github.com/taobaofed/react-web) but(a big one), libraries and sqlite(would need pouch/indexed db on web) are a big challenge to solve.

P.S. react community keeps on emphasizing that react is "Learn once write anywhere" and not "Write once use everywhere", so they suggest to make common the 30-40% logic part and treat the view part differently (something like this: https://github.com/kauffecup/react-native-web-hello-world)

[20 DEC, 2016]

UPDATE 🎉 https://github.com/necolas/react-native-web is what we'll be using in the way (somewhat) mentioned in this blog: https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ - @veris-abhinavanand tested this for forms library.

[To do] test the above library with navigation api of react native.

Week's Update 🎉 First release for the react native terminal is ready(it crashes at camera 1 in 10 times, need to handle it). Upcoming week's agenda: Integrate forms(every information input will be through a form) and make the app compatible with react-native-web and release it on 30th.

26th of December 🎉 structure architecture and integration of react-native-web in current project 📆 convert existing codebase for view to web.

30th of December @veris-abhinavanand is done with forms (a few issues with image fields). 🎉 adidas terminal is ready with printing (finally). 😞 web terminal is on the way (this is a whole new level of challenge)

P.S: Writing production code with 2 beer down is off the bucket list. 😎