Praxis Architecture View

C4 Model Maps

Explain the system architecture according to the C4 abstraction level: System Context, Container, Component, Code. It is an architectural projection of the UML Model, not an independent source of truth.

Project version: 0.1.30-alpha Git:34aad0bffa2f / main / dirty Updated in:

C4 level index

System Context1

The boundary between the system and outsiders/system

Container5

Independently interpretable architectural boundaries

Component4

Key components inside the container

Code5

Necessary code anchors

C4 document tree

System Context contains Containers, Container contains Component Views, and Component View contains Code Views; this is the current C4 drill-down structure.

  1. System Context: trail-mate

    System Context · high

    Explain trail-mate from the C4 System Context layer The environment in which this target software system exists: who uses it, what external systems it depends on or collaborates with, and where its boundaries are as a black box.

    1. Container boundary: apps/linux_uconsole_gtk

      Container · high

      apps/linux_uconsole_gtk is a C4 Container layer candidate boundary: it must appear as an application, service, data store, runnable unit, or independently deployable/executable system part, rather than a normal directory, code layering, or shared tool collection.

      1. Component responsibility: apps/linux_uconsole_gtk

        Component · high

        Explain the key responsibility units inside apps/linux_uconsole_gtk from the C4 Component layer: entry, page, command, interface, registry, adapter or shared object.

        1. Code anchors: apps/linux_uconsole_gtk

          Code · medium

          Explain a few key code anchors in apps/linux_uconsole_gtk from the C4 Code layer. The Code layer is not a code browser and is only used when you need to understand how architectural components fall into specific files/symbols.

    2. Container boundary: apps/esp32_lvgl

      Container · high

      apps/esp32_lvgl is a C4 Container layer candidate boundary: it must appear as an application, service, data store, runnable unit, or independently deployable/executable system part, rather than a normal directory, code layering, or shared tool collection.

      1. Component responsibility: apps/esp32_lvgl

        Component · high

        Explain the key responsibility units inside apps/esp32_lvgl from the C4 Component layer: entry, page, command, interface, registry, adapter or shared object.

        1. Code anchors: apps/esp32_lvgl

          Code · medium

          Explain a few key code anchors in apps/esp32_lvgl from the C4 Code layer. The Code layer is not a code browser and is only used when you need to understand how architectural components fall into specific files/symbols.

    3. Container boundary: apps/nrf52_node

      Container · high

      apps/nrf52_node is a C4 Container layer candidate boundary: it must appear as an application, service, data store, runnable unit, or independently deployable/executable system part, rather than an ordinary directory, code layering, or shared tool collection.

      1. Component responsibility: apps/nrf52_node

        Component · high

        Explain the key responsibility units inside apps/nrf52_node from the C4 Component layer: entry, page, command, interface, registry, adapter or shared object.

        1. Code anchors: apps/nrf52_node

          Code · medium

          Explain a small number of key code anchors in apps/nrf52_node from the C4 Code layer. The Code layer is not a code browser and is only used when you need to understand how architectural components fall into specific files/symbols.

    4. Container boundary: apps/linux_cardputer_zero

      Container · high

      apps/linux_cardputer_zero is a C4 Container layer candidate boundary: it must appear as an application, service, data store, runnable unit, or independently deployable/executable system part, rather than a normal directory, code layering, or shared tool collection.

      1. Component responsibility: apps/linux_cardputer_zero

        Component · medium

        Explain the key responsibility units inside apps/linux_cardputer_zero from the C4 Component layer: entry, page, command, interface, registry, adapter or shared object.

        1. Code anchors: apps/linux_cardputer_zero

          Code · medium

          Explain a few key code anchors in apps/linux_cardputer_zero from the C4 Code layer. The Code layer is not a code browser and is only used when you need to understand how architectural components fall into specific files/symbols.

    5. Container boundary: apps/linux_sim_shell

      Container · high

      apps/linux_sim_shell is a C4 Container layer candidate boundary: it must appear as an application, service, data store, runnable unit, or independently deployable/executable system part, rather than a normal directory, code layering, or shared collection of tools.