Technical design sessions - Zenmo/Holon-webapp GitHub Wiki

Session 1


Written overview

Backend consists of:

  1. Django core
    1. Django database
    2. Wagtail CMS
  2. Services:
    1. ETM
      1. Static (technical en cost assumptions)
      2. Dynamic (ETM scenario parameters)
      3. KPIs on higher (national) level
    2. HOLON
      1. Pre- and postprocessor
      2. AnyLogic client
    3. Financial wizzard (t.b.a.)

Definitions:

  1. ETM scenario
    A scenario in the ETM
  2. HOLON scenario
    A description / data collection that describes the scope, parameters and configuration of the system in starting position
  3. Storyline mode
    Guided user journey that describes the evolution from starting point to the end goal
  4. Challenge mode
    Unguided user journey where the user takes action themselves to reach a certain set goal

Roles and corresponding interface in the HOLON tool:

  1. User - Frontend
  2. Content manager - CMS
  3. Modelers - Metadata admin section in CMS (requires domain knowledge)
  4. Developers - Configs, scripts, modules & services (everything in repo)

UML / diagram missing:

  1. Cost service from Quintel
  2. Post- and preprocessing interface on HOLON service

Next time:

  1. Define research and/or experiments that reduce uncertainty
  2. Prioritize the interfaces, work out the highest priority and decide on intermediate solutions for the other interfaces

UML

architecture_puzzle_v2-03

Session 2

Agenda:

  1. Add the ETM cost module to the UML
  2. Add roles to information flows where applicable
  3. Define research and/or proof of concepts that reduce uncertainty
  4. Prioritize the interfaces, work out the highest priority and decide on intermediate solutions for the other interfaces

Reminder of roles

Roles and corresponding interface in the HOLON tool:

  1. User - Frontend
  2. Content manager - CMS
  3. Modelers - Metadata admin section in CMS (requires domain knowledge)
  4. Developers - Configs, scripts, modules & services (everything in repo)

Missing in the UML

  1. Scheduler / cron job
  2. Testing

POC - start that engine

  1. Deliver the whole data payload needed to start an AnyLogic model run statelesly
    1. Model data that is included locally with the AL model (excel sheets)
      1. Converted to an endpoint functions APIs
    2. HOLON-ETM config can continue to life as a YAML
      1. Converted to an endpoint functions APIs so that it serves the base data
    3. Combined with interactive frontend data and triggered by the HOLON service that triggers the AL model
    4. Some post processing by the HOLON service that serves the result back to the frontend

UML

architecture_puzzlev3-03

Economic

architecture_puzzlev3-04


Session 3

Agenda

  1. Missing items in the diagram
    1. Scheduling
    2. Testing
  2. Design data models (SQL modelling)
  3. CI (e.g. can we use github actions to synchronize model dependencies through for instance a .yaml file?)
  4. Testing? Sanity testing?