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
System overview
Overview
Coordination Layer
Purpose: Orientation, transparency, and alignment
Includes:
- Public handbook (see Editing guidelines)
- Individual Agenda Repositories, see agendas.
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:
- workstation-setup (Infrastructure-as-Code)
- Defined technology stack
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