Skip to content

GeoNetwork client app building blocks codesprint 1st and 2nd June 2020

François Prunayre edited this page May 27, 2020 · 18 revisions

Where?

Address:

  • Monday/Tuesday: Olivier, Florent, Francois at the farm, 321, Route de la Mollière, Saint-Pierre-de-Genebroz, Chambéry, Savoie, Auvergne-Rhône-Alpes, France

Who?

  • Florent
  • Olivier
  • Francois
  • Arnaud
  • ?

Sponsors

  • titellus
  • Spacebel

Agenda

Describes the building blocks of a new GeoNetwork client app.

Sprint goals

Define the base rules of a new client application for GeoNetwork. Choose libraries and start setting up the project.

Why a new app?

  • AngularJS EOL is 2021
  • Improve performances - we know why and how the client app can be faster eg. watchers, incremental DOM
  • Make GeoNetwork easier to embed in a third party app eg. with shadow DOM

Issues in current app?

  • Quite some years on overlaying features over features - all can be simplified
  • Nobody is using JSLint … probably because not mandatory or lazy devs ;)
    • Reminder: all devs are lazy by definition
  • WRO4J works but is effectively a completely custom, hand-made bundler which is hard to maintain (written in Java for frontend devs…), based on old assumptions, and has such a large role in the build that it is almost impossible to get rid of
  • Define UI design templates, so pages look as unified as possible across the application.
  • 2 notification systems
  • No component testing
  • No strict encapsulation of components (either scopes or styles), scopes are shared between many components eg. the search directive => this also means components are not really reusable outside of the standard UI
  • No type checking
  • Using Jquery and Bootstrap means putting the app in a shadow dom is not feasible
  • No centralized state management
  • Improve the current asynchronous code to retrieve the information from the catalog that is needed in the UI.
  • UI configuration - how much config options? Good defaults? Merge a custom one with the defaults

New client app challenges?

  • Performances
  • Embedable

Outputs

Clone this wiki locally