Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kislerdm/diagramastext
Application to streamline diagram generation using plain English instructions instead of code
https://github.com/kislerdm/diagramastext
c4model chatgpt-api diagram go golang openai-api plantuml
Last synced: about 1 month ago
JSON representation
Application to streamline diagram generation using plain English instructions instead of code
- Host: GitHub
- URL: https://github.com/kislerdm/diagramastext
- Owner: kislerdm
- License: apache-2.0
- Created: 2023-01-29T01:41:21.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-01T17:19:43.000Z (12 months ago)
- Last Synced: 2024-06-22T07:42:44.055Z (6 months ago)
- Topics: c4model, chatgpt-api, diagram, go, golang, openai-api, plantuml
- Language: Go
- Homepage: https://diagramastext.dev
- Size: 4.17 MB
- Stars: 23
- Watchers: 4
- Forks: 1
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Diagram As Text
The tool to generate diagram based on textual description. Although it takes quite some effort to make a diagram, LLM is
here for the rescue! 🤖🦾🚀🚀🚀 _Mission_: to enable anyone to explain complex system, or process in a simple way.
🚀🚀 _Objective_: to streamline knowledge sharing through diagrams.
🚀 _MVP_: plain english to [C4 container](http://c4model.com/) diagrams.
🔔 **Wanted**: founding contributors 🔔
The project is purely community driven - we need your support:
- Please give the project a _star_.
- Join us as _contributor_: we need software engineers, data scientists, analysts, designers.If you are excited about the project, feel comfortable with our [ways of work](#ways-of-work), and want to contribute,
please [get in touch](#contacts) for further details.Thank you! 🙏
## Contacts
- Submit
your [request](https://github.com/kislerdm/diagramastext/issues/new?assignee=kislerdm&labels=feedback&title=PLEASE%20DEFINE%20YOUR%20REQUEST&body=%23%23%20What%0APlease%20describe%20your%20proposal.%0A%0A%23%23%20Why%0APlease%20clarify%20the%20context.%0A%0A%23%23%20How%0A%0A(optional)%20Please%20sketch%20execution%20paths.)
- Join us on [Slack](https://join.slack.com/t/diagramastextdev/shared_invite/zt-1onedpbsz-ECNIfwjIj02xzBjWNGOllg)
- Write us: [email protected]
- Get in touch on [LinkedIn](https://www.linkedin.com/in/dkisler/)Outlook
* [Ways of work](#ways-of-work)
+ [Manifesto](#manifesto)
+ [Process](#process)
+ [Bets/Panning/Commitment](#betspanningcommitment)
* [Tech details](#tech-details)
+ [Architecture](#architecture)
+ [Local setup](#local-setup)
* [License](#license)
+ [Codebase](#codebase)
+ [Images and diagrams](#images-and-diagrams)## Ways of work
### Manifesto
- We are driven by the mission
- We respect one another and the community
- We deliver in lean iterations
- We work async with pairing programming sessions
- We share the work openly, see the [license details](#license)### Process
- We follow [TDD](https://www.guru99.com/test-driven-development.html)
- We follow [RDD](https://tom.preston-werner.com/2010/08/23/readme-driven-development.html)
- We maintain flat modules structure whether possible
- We embrace clean architecture inspired by Alistair
Cockburn's [port-adapter approach](https://web.archive.org/web/20180822100852/http://alistair.cockburn.us/Hexagonal+architecture)
and Martin Fowler's [inversion of control](https://martinfowler.com/bliki/InversionOfControl.html), see a great
write-up [here](https://jmgarridopaz.github.io/content/hexagonalarchitecture.html#tc2-3) on the subjects matter
- We aim for simplicity with the least external dependencies
- We follow conventional _comments_ [guideline](https://conventionalcomments.org/) for code reviews
- We follow conventional _commits_ [guideline](https://www.conventionalcommits.org/en/v1.0.0/):
- `feat`: for features
- `fix`: for defect fix
- `chore`: for infra, ci, or docs adjustments; or refactoring
- We follow the [monorepo](https://monorepo.tools/) approach
- We follow [trunk-based development](https://trunkbaseddevelopment.com/) model
- We follow the release [guideline](https://keepachangelog.com/en/1.0.0/) and [semantic versioning](https://semver.org/)### Bets/Panning/Commitment
- [Issues Board](https://github.com/users/kislerdm/projects/5/views/)
## Tech details
Tech stack
- Languages:
- Go 1.19
- TypeScript, ES2020:
- [vite](https://vitejs.dev)
- [vitest](https://vitest.dev/)
- Python 3.9
- Markup:
- Markdown
- HTML5
- CSS3
- CI:
- GitHub Actions
- Infra:
- GCP
- IAM
- SecretsManager
- CloudRun
- IdentityPlatform
- AWS (infra deprecated as of 2023-03)
- GitHub Pages
- [Neon](https://neon.tech/)
- Cloudflare
- namecheap
- godaddy
- Tools:
- gnuMake
- Docker
- terraform
- Logic:
- PlantUML
- OpenAI### Architecture
#### C4 Context Level
![architecture-context](architecture_c4_l1.svg)
### Local setup
#### Requirements
- git
- gnuMake
- docker ~> 20.10#### Steps
Follow the steps to provision local development environment.
1. Clone the repo
```commandline
git clone [email protected]:kislerdm/diagramastext.git
```2. Export OpenAI access [token](https://platform.openai.com/docs/api-reference/authentication) as the environment
variable `OPENAI_API_KEY`:```commandline
export OPENAI_API_KEY=##TOKEN##
```3. Run to provision the local environment:
```commandline
make localenv
```**Note**:
- The webclient will be available on http://localhost:9001
- The database webclient will be available on http://localhost:90814. Run to clean the local environment:
```commandline
make localenv-teardown
```## License
### Codebase
The codebase is distributed under the [Apache 2.0 licence](LICENSE).
### Images and diagrams
This work
by
diagramastext.dev is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at [https://github.com/kislerdm/diagramastext](https://github.com/kislerdm/diagramastext).
Permissions beyond the scope of this license may be available
at diagramastext.dev.