Skip to main content

A package for generating architecture diagrams using PlantUML and diagrams.

Project description

A Docker container for generating system design diagrams using PlantUML and the diagrams library.

https://img.shields.io/badge/Docker-Ready-blue.svg https://img.shields.io/badge/license-MIT-green.svg https://github.com/aydabd/sys-design-diagram/actions/workflows/ci.yml/badge.svg

Overview

System Design Diagram is a Docker container that provides tools to generate system design diagrams from PlantUML files and using the diagrams library. This container is designed for use in CI/CD pipelines and other automation workflows.

Features

  • Generate diagrams from PlantUML files

  • Generate diagrams using the diagrams library

  • Process all diagrams in a given directory

  • Asynchronous processing for better performance

Installation

To use the Docker container, pull it from the GitHub Container Registry or docker hub:

docker pull ghcr.io/aydabd/sys-design-diagram:latest
docker pull aydabd/sys-design-diagram:latest

Make sure you have Docker installed and running on your system.

Usage

The Docker container provides several commands to generate diagrams:

docker run --rm --it ghcr.io/aydabd/sys-design-diagram:latest [OPTIONS] COMMAND [ARGS]...

Options

  • -v, –verbose: Enable verbose mode.

  • –version: Show the version and exit.

  • –help: Show the help message and exit.

Commands

  • diagrams: Generate diagrams using the diagrams library.

  • plantuml: Generate diagrams from PlantUML files.

  • process-all: Generate diagrams using both PlantUML and diagrams library.

Examples

There is a compose.yaml file which can be used to generate diagrams from a tests-data directory. To use the compose.yaml file, run the following command:

docker-compose up --build

Development

To contribute to the development of this project, follow these steps:

  1. Clone the repository

  2. for linux users, install mamba-githook [mamba-githook](https://github.com/aydabd/mamba-githook?tab=readme-ov-file#installation)

  3. Initiate mamba-githook, check the installation link above

  4. Create a new branch (e.g. git checkout -b feature)

  5. Make your changes

  6. Commit your changes (e.g. git commit -am ‘Add new feature’)

  7. Push to the branch (e.g. git push origin feature)

  8. Create a new Pull Request

Testing

Pre-commit hooks are used to run tests before each commit. To run the tests manually, use the following command:

# Create a virtual environment
python -m venv .venv
pip install hatch
# Run the tests
hatch run test:all
# For formatting
hatch fmt

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

Contact

For any questions or suggestions, please open an issue on the GitHub repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sys_design_diagram-1.0.0.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

sys_design_diagram-1.0.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file sys_design_diagram-1.0.0.tar.gz.

File metadata

  • Download URL: sys_design_diagram-1.0.0.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for sys_design_diagram-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f100f0a9a926130d715aee127055e9bcf3699764c6ece3d47c9dd525529f45cb
MD5 dc8f90794b834460656424862a52a3b4
BLAKE2b-256 75111224743a493badddf50ec631567936ff235e11f4572abeede303ccb6a729

See more details on using hashes here.

File details

Details for the file sys_design_diagram-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sys_design_diagram-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53a7f720b74acc389b44dbfb4d826e31cf2baf3bd08b24dcecc0118a537b5c2b
MD5 c39d25f9fc830fcbb6e5bc954112ea6c
BLAKE2b-256 4acff5e7473409d1ef9b602545cb200a53605a462f379b600b5080ed3064ca1b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page