2017-10-17 Meeting notes

2017-10-17 Meeting notes

Date

Oct 17, 2017

7am PST / 4pm CEST

Meeting Link

https://meetings.webex.com/collabs/#/meetings/detail?uuid=M0UUCAJ68OYLPMKAROOE9PJSBW-3O29&rnd=897752.12165

Toll: +1-415-655-0001

Number:  199 948 686 

Attendees

  • @Chongsun Ahn (Unlicensed)

  • @Josh Zamor (Deactivated)

  • @Paweł Gesek

  • @Mateusz Kwiatkowski

  • @Nick Reid (Deactivated)

  • @Nikodem Graczewski (Unlicensed)

  • Paweł Gesek

  • @Paweł Albecki (Deactivated)

  • @Sebastian Brudziński

Goals

  • Concurrency Update

  • Discuss UI architecture short & long term changes

Discussion items

Time

Item

Who

Notes

Time

Item

Who

Notes

5m

Review agenda and discussion items

@Nick Reid (Deactivated)

 

15m

Concurrency Update

@Sebastian Brudziński

 

10m

UI Long term vision

@Nick Reid (Deactivated)

 

10m

UI Architecture

@Nick Reid (Deactivated)

 

5m

JSON Resource Representations

@Chongsun Ahn (Unlicensed)

 

Notes

Concurrency Update

  • Add a new field into status changes - add previous status change - chaining essentially

  • Status changes would link to a status comment

  • Add unique constraint to reasons in requisition adjustments

    • UI change would be needed as it allows a user to add multiple reasons for a single item

When do we need these changes? For 3.2.1

Questions:

Why do we have a different table in requisition adjustments, rather than using stock management?

  • We only create Stock Events when a requisition is approved

  • Requisition is released at final approval

Note: Should check requirements for stock management adjustment reasons (such as physical inventory)

UI Long-term Vision

  • Remove AngularJS

    • Self-contain business logic - using Pure Javascript Objects (POJOs)

    • Formalize UI Architecture

  • ES6

    • Will help writing POJOs without Angular dependency injection

  • Webpack

    • Code bundling and faster load times

  • Run-time environment

    • Keep configuration variables.... configurable

  • "True Mobile"

    • Not necessarily native, but works on tablet

    • Can use camera/barcode/etc

    • How to deal with different requirements and documenting/maintaining these changes

      • Need to be able to test "Happy Path" across different devices

      • We want feature sets across systems to be "more alike" than not

      • Guidance on "high level" design and architecture 

    • Do we talk about whole application or just single workflows when building experience

      • Maintenance considerations:  easier to develop many user-persona focused "apps" or one mega app that understands our RBAC?

        • frequency of updates to the app

        • Size of app

        • people with multiple hats needing more than one app on their device

        • cross-device usage / IT burden for loading apps - in the end is an IT shop just going to update a bundle of apps at the same frequency as one mega app?

      • Performance considerations

        • Would a mega-app need to cache more meta data?

        • Do most people wear multiple hats and so the device would need to download and cache all meta-data similarly to how a mega-app might work

UI Architecture

See UI Architecture v7

  • Directives/components add affordance to semantic base

  • Resources that return domain objects

  • "Thin" state configuration

JSON Resource Representations

https://github.com/OpenLMIS/openlmis-template-service/blob/master/STYLE-GUIDE.md#restful-interface-design–documentation

  • Generally we return "expanded" in many places

    • Returning "expanded" sections causes performance values

    • "Expanded" endpoints might be caused by referencedata being "locked-down"

      • Need to allow referencedata to be cache-able

      • Devs should ask community how to avoid expanded definitions, when they notice they are doing it

  • Want to focus on "essential" and "expanded"

Action Items

@Sebastian Brudziński To create ticket to update concurrency

 

 

OpenLMIS: the global initiative for powerful LMIS software