=====================
System Design Diagram
=====================
A Docker container for generating system design diagrams using PlantUML and the diagrams library.
.. image:: https://img.shields.io/badge/Docker-Ready-blue.svg
:target: https://www.docker.com/
.. image:: https://img.shields.io/badge/license-MIT-green.svg
:target: https://opensource.org/licenses/MIT
.. image:: https://github.com/aydabd/sys-design-diagram/actions/workflows/ci.yml/badge.svg
:target: https://github.com/aydabd/sys-design-diagram/actions/workflows/ci.yml
.. contents::
:local:
:depth: 2
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:
.. code-block:: bash
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:
.. code-block:: bash
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:
.. code-block:: bash
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:
.. code-block:: bash
# 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.
.. _LICENSE: LICENSE
.. _compose.yaml: compose.yaml
Raw data
{
"_id": null,
"home_page": null,
"name": "sys-design-diagram",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "architecture, design, diagrams, plantuml, system, uml",
"author": null,
"author_email": "Aydin Abdi <ayd.abd@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/75/11/1224743a493badddf50ec631567936ff235e11f4572abeede303ccb6a729/sys_design_diagram-1.0.0.tar.gz",
"platform": null,
"description": "=====================\nSystem Design Diagram\n=====================\n\nA Docker container for generating system design diagrams using PlantUML and the diagrams library.\n\n.. image:: https://img.shields.io/badge/Docker-Ready-blue.svg\n :target: https://www.docker.com/\n\n.. image:: https://img.shields.io/badge/license-MIT-green.svg\n :target: https://opensource.org/licenses/MIT\n\n.. image:: https://github.com/aydabd/sys-design-diagram/actions/workflows/ci.yml/badge.svg\n :target: https://github.com/aydabd/sys-design-diagram/actions/workflows/ci.yml\n\n.. contents::\n :local:\n :depth: 2\n\nOverview\n========\n\nSystem 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.\n\nFeatures\n========\n\n- Generate diagrams from PlantUML files\n- Generate diagrams using the diagrams library\n- Process all diagrams in a given directory\n- Asynchronous processing for better performance\n\nInstallation\n============\n\nTo use the Docker container, pull it from the GitHub Container Registry or docker hub:\n\n.. code-block:: bash\n\n docker pull ghcr.io/aydabd/sys-design-diagram:latest\n docker pull aydabd/sys-design-diagram:latest\n\nMake sure you have Docker installed and running on your system.\n\nUsage\n=====\n\nThe Docker container provides several commands to generate diagrams:\n\n.. code-block:: bash\n\n docker run --rm --it ghcr.io/aydabd/sys-design-diagram:latest [OPTIONS] COMMAND [ARGS]...\n\nOptions\n-------\n\n- `-v`, `--verbose`: Enable verbose mode.\n- `--version`: Show the version and exit.\n- `--help`: Show the help message and exit.\n\nCommands\n--------\n\n- `diagrams`: Generate diagrams using the diagrams library.\n- `plantuml`: Generate diagrams from PlantUML files.\n- `process-all`: Generate diagrams using both PlantUML and diagrams library.\n\nExamples\n========\n\nThere 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:\n\n.. code-block:: bash\n\n docker-compose up --build\n\nDevelopment\n===========\n\nTo contribute to the development of this project, follow these steps:\n\n1. Clone the repository\n2. for linux users, install mamba-githook [mamba-githook](https://github.com/aydabd/mamba-githook?tab=readme-ov-file#installation)\n3. Initiate mamba-githook, check the installation link above\n4. Create a new branch (e.g. `git checkout -b feature`)\n5. Make your changes\n6. Commit your changes (e.g. `git commit -am 'Add new feature'`)\n7. Push to the branch (e.g. `git push origin feature`)\n8. Create a new Pull Request\n\n\nTesting\n=======\n\nPre-commit hooks are used to run tests before each commit. To run the tests manually, use the following command:\n\n.. code-block:: bash\n \n # Create a virtual environment\n python -m venv .venv\n pip install hatch\n # Run the tests\n hatch run test:all\n # For formatting\n hatch fmt\n\n\nLicense\n=======\n\nThis project is licensed under the MIT License. See the `LICENSE`_ file for details.\n\nContributing\n============\n\nContributions are welcome! Please open an issue or submit a pull request on GitHub.\n\nContact\n=======\n\nFor any questions or suggestions, please open an issue on the GitHub repository.\n\n.. _LICENSE: LICENSE\n.. _compose.yaml: compose.yaml\n\n",
"bugtrack_url": null,
"license": null,
"summary": "A package for generating architecture diagrams using PlantUML and diagrams.",
"version": "1.0.0",
"project_urls": null,
"split_keywords": [
"architecture",
" design",
" diagrams",
" plantuml",
" system",
" uml"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4acff5e7473409d1ef9b602545cb200a53605a462f379b600b5080ed3064ca1b",
"md5": "c39d25f9fc830fcbb6e5bc954112ea6c",
"sha256": "53a7f720b74acc389b44dbfb4d826e31cf2baf3bd08b24dcecc0118a537b5c2b"
},
"downloads": -1,
"filename": "sys_design_diagram-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c39d25f9fc830fcbb6e5bc954112ea6c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 12196,
"upload_time": "2024-08-08T23:33:26",
"upload_time_iso_8601": "2024-08-08T23:33:26.312556Z",
"url": "https://files.pythonhosted.org/packages/4a/cf/f5e7473409d1ef9b602545cb200a53605a462f379b600b5080ed3064ca1b/sys_design_diagram-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "75111224743a493badddf50ec631567936ff235e11f4572abeede303ccb6a729",
"md5": "dc8f90794b834460656424862a52a3b4",
"sha256": "f100f0a9a926130d715aee127055e9bcf3699764c6ece3d47c9dd525529f45cb"
},
"downloads": -1,
"filename": "sys_design_diagram-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "dc8f90794b834460656424862a52a3b4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 18869,
"upload_time": "2024-08-08T23:33:27",
"upload_time_iso_8601": "2024-08-08T23:33:27.560103Z",
"url": "https://files.pythonhosted.org/packages/75/11/1224743a493badddf50ec631567936ff235e11f4572abeede303ccb6a729/sys_design_diagram-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-08 23:33:27",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "sys-design-diagram"
}