Skip to content

GitHub template repository for collaborative software system documentation projects with architecture diagrams generated from a Structurizr DSL model

License

growit-io/software-system-documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software System Documentation

This GitHub template repository provides a starting point for working collaboratively on the documentation of a potentially complex software system. Its features include:

  • Readable in the GitHub UI, without GitHub Pages or another hosted service
  • Automatically generated architecture diagrams defined in the Structurizr DSL
  • Interactive viewing and presentation in the Structurizr Lite application

How to use this template

To use this template, simply create a new GitHub repository and select this repository as a template.

Once the cloning operation has finished, configure your desired repository settings, review the included GitHub Actions configuration, if you like, adjust the contents of this README.md file, and start documenting your software system by modifying markdown files in the docs directory and the corresponding architecture model in the workspace.dsl file.

Simon Brown, creator of the Structurizr DSL, recommends that you also manage the source code of the software system itself in the same repository as its documentation. That way it not only becomes easier to compare the architecture model and its implementation, but it also beceomes easier to use advanced techniques to generate parts of the architecture model, if you dare.

How to work locally

The recommended development workflow is to view the diagrams and documentation locally via the Structurizr Lite application in your browser as you are making changes to the source files, before you commit and push your changes.

Prerequisites

How to run Structurizr Lite

Run the following command from the top-level directory of this repository to start the Structurizr Lite web application in the background, and then open it in a browser window:

make start open

To stop the application again when you're done using it, run:

make stop

Note that you'll have to reload the page whenever you make changes to the Structurizr DSL or markdown source files to see the changes.

How to export the diagrams

Normally there shouldn't be a need to update the exported diagrams manually, since the Structurizr Lite application renders them dynamically, and the Structurizr workflow for GitHub Actions will automatically update the diagrams whenever you push a commit which modifies the Structurizr DSL input files. However, you can still export the diagrams directly from your working copy without having to first commit and push your changes. To do that, simply run the following command from the top-level directory:

make export

Note that the previous command will automatically start the Structurizr Lite application, and keep it running in the background. If you don't want to keep the application running in the background, you can use the following command, instead:

make export stop

Resources

License

The Unlicense

Acknowledgements

The Software System Documentation template repository was created with 🥳 by Uwe Stuehler, and with much admiration for Simon Brown's work on the C4 model and on Structurizr. 🙇

About

GitHub template repository for collaborative software system documentation projects with architecture diagrams generated from a Structurizr DSL model

Topics

Resources

License

Stars

Watchers

Forks