System overview

Overview

graph LR

    subgraph Nextcloud["<a href='nextcloud.html'>Nextcloud</a> (mostly private)"]
        Archive["Archive"]
        Grades["Grades"]
    end

    %% Infrastructure Layer
    subgraph Infrastructure_Layer["infrastructure-layer <a href='#infrastructure-layer'>πŸ”—</a>"]
        Workstation["<a href='https://github.com/fs-ise/workstation-setup'  target='_blank'>workstation-setup</a> (public)"]
    end

    subgraph Github_Sphere["GitHub"]

        %% Coordination Layer
        subgraph Coordination_Layer["coordination-layer <a href='#coordination-layer'>πŸ”—</a>"]
            Handbook["<a href='handbook.html'>handbook</a> (public)"]
            Agenda["<a href='github.html#general-repositories'>agendas</a> (private)"]
        end

        %% Knowledge Layer
        subgraph Knowledge_Layer["knowledge-layer <a href='#knowledge-layer'>πŸ”—</a>"]
            ResearchHub["<a href='https://github.com/fs-ise/research-hub' target='_blank'>research-hub</a> (private)"]
            TeachingHub["<a href='https://github.com/fs-ise/teaching-hub' target='_blank'>teaching-hub</a> (private)"]
        end


        %% Execution Layer
        subgraph Execution_Layer["execution-layer <a href='#execution-layer'>πŸ”—</a>"]
            Templates["<a href='github.html#general-repositories'>templates</a> (public)"]
            PaperProjects["<a href='github.html#research-repositories'>research repositories</a><br> (mostly private)"]
            LectureRepos["<a href='github.html#teaching-repositories'>teaching repositories</a><br> (mostly public)"]
        end

        %% Automation Layer
        subgraph Automation_Layer["automation-layer <a href='#automation-layer'>πŸ”—</a>"]
            LabBot["<a href='https://github.com/digital-work-lab/labot' target='_blank'>labot</a> (public)"]
        end

    end

    %% Core relationships

    Automation_Layer -.- Coordination_Layer
    Automation_Layer -.- Knowledge_Layer
    Automation_Layer -.- Execution_Layer

    Handbook --> ResearchHub
    Handbook --> TeachingHub
    Handbook --> PaperProjects
    Handbook --> LectureRepos
    Handbook --> Agenda
    Handbook --> Nextcloud
    %% Handbook --> Templates
    Templates -.- PaperProjects
    Templates -.- LectureRepos

    ResearchHub <==> PaperProjects
    TeachingHub <==> LectureRepos

    Infrastructure_Layer -.- Github_Sphere
    Infrastructure_Layer -.- Nextcloud

    %% Highlight Handbook
    style Handbook fill:#ffe599,stroke:#b45f06,stroke-width:3px,color:#000

Coordination Layer

Purpose: Orientation, transparency, and alignment

Includes:

This layer connects individual work with collective standards and external communication. It provides clarity on processes, responsibilities, priorities, and strategic direction. It aligns personal goals with lab-wide objectives and ensures transparency toward stakeholders.

Infrastructure Layer

Purpose: Reproducibility and standardization

Includes:

This layer ensures consistent development environments and reproducible workflows. By codifying infrastructure, onboarding becomes efficient and technical fragmentation is minimized. It connects tools to practice through automation and standardization.

Knowledge Layer

Purpose: Institutional memory and knowledge synthesis

Includes:

  • Research Hub
  • Teaching Hub

This layer organizes accumulated knowledge across projects. It preserves methods, literature syntheses, templates, and best practices. It connects past and ongoing work, enabling reuse, cumulative learning, and cross-project coherence.

Execution Layer

Purpose: Project realization and output production

Includes:

  • Paper Template β†’ Paper Repositories
  • Lecture Template β†’ Lecture Repositories
  • Thesis Template

This layer transforms knowledge into deliverables. It structures collaborative writing, course development, and thesis supervision. Templates ensure consistency, while project repositories enable modular and scalable execution.

Automation Layer

Purpose: Process reliability and reduced coordination overhead

Includes:

  • Lab Bot
  • Repository automation
  • Quality checks and synchronization scripts

This layer maintains flow and enforces standards. Automation reduces manual coordination, supports quality assurance, and ensures that repositories remain aligned with lab principles.

Archival Layer

Purpose: Security, privacy, and long-term storage

Includes:

  • Nextcloud

This layer stores sensitive research data, administrative documents, and non-public materials. It complements the public Git-based ecosystem by providing controlled access and archival stability.

Rationales

We prefer open-source tools and open-data formats:

  • Git, a distributed version control system to collaborate on software development projects, data analyses, paper writing, and teaching materials. It allows users to work on the same file, to track changes, to merge different versions or branches, and revert to any previous state.
  • Markdown, a markup language, which allows us to creating formatted documents, papers, websites, presentations using plain text (formatting such as headings, lists, bold, italics, and links). It is platform-independent, integrates well with git, and can easily be converted to other formats (e.g., PDF, HTML, DOCX) using Pandoc or the Quarto ecosystem. Citations can be included via the CSL project.

Tradeoff: Git means no Zotero, no Word… But: it also means immediate involvement of new team members, algorithms (LLMs), and external contributors