Models which document software architecture models for the various Makerspace systems https://makerspaceleiden.github.io/software-systems/
Find a file
Luke Watts 57beb60f98
Some checks failed
Deploy pages / build-pages (push) Failing after 1s
Deploy pages / deploy-pages (push) Has been skipped
Generate Diagrams / generate-c4-diagrams (push) Failing after 1s
lint / lint (push) Successful in 48s
docs: include webhook component
2025-12-12 21:31:06 +01:00
.github/workflows chore: adjust name of job step 2025-10-19 20:10:38 +02:00
assets docs(🤖): update generated diagrams 2025-12-12 20:11:51 +00:00
.gitignore docs: embed generated documents 2025-05-21 15:44:05 +02:00
CONTRIBUTING.md docs: add contributing documentation 2025-05-21 16:37:46 +02:00
deployment.c4 docs: include webhook component 2025-12-12 21:31:06 +01:00
model.c4 docs: include webhook component 2025-12-12 21:31:06 +01:00
README.md docs: restructure for clarity 2025-05-21 15:55:08 +02:00
specs.c4 feat: add deployment model 2025-05-14 22:18:23 +02:00
views.c4 feat: update views 2025-05-16 12:00:03 +02:00

System Documentation

This repository contains C4 model files (.c4) that define software architecture models for the various Makerspace systems. From these models, we can dynamically generate views of the Makerspace software system.

What is C4 Modeling?

The C4 model was created to help build better mental models of their software architecture and communicate these models effectively to others.

It consists of four levels of abstraction:

  • Context: The highest level view showing your software system in its environment, including the people who use it and the other systems it interacts with. This answers the "what" and "why" questions and helps establish scope and boundaries.
  • Containers: Zooms into your software system to show the high-level technical building blocks. A container represents an application or data store that needs to be running for the overall system to work. Examples include web applications, mobile apps, databases, file systems, etc.
  • Components: The logical components within each container
  • Code: The implementation details

Note: For our purposes we will be focusing on the Context and Containers levels.

Diagrams

Currently we have the following views available:

  1. System Landscape
  2. System Containers
  3. Deployment

System Landscape

System Landscape

System Containers

Deployment

The deployment view is a mapping of the software containers onto physical hardware.

Deployment

Generating Output Diagrams

To generate diagrams from the C4 model, you can use the likec4 tool. This offers a DSL and command-line tool that can be used to generate diagrams from C4 model files.

Generate static diagrams

To generate static diagrams in an ./assets directory, you can use the following command:

npx likec4 export png -o ./assets

Generating Interactive Diagrams

npx likec4 build -o ./dist

Acknowledgments