Skip to content

kislerdm/diagramastext

Repository files navigation

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! 🤖🦾

demo_beta.mp4

🚀🚀🚀 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 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, and want to contribute, please get in touch for further details.

Thank you! 🙏

Contacts

Outlook

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

Process

  • We follow TDD
  • We follow RDD
  • We maintain flat modules structure whether possible
  • We embrace clean architecture inspired by Alistair Cockburn's port-adapter approach and Martin Fowler's inversion of control, see a great write-up here on the subjects matter
  • We aim for simplicity with the least external dependencies
  • We follow conventional comments guideline for code reviews
  • We follow conventional commits guideline:
    • feat: for features
    • fix: for defect fix
    • chore: for infra, ci, or docs adjustments; or refactoring
  • We follow the monorepo approach
  • We follow trunk-based development model
  • We follow the release guideline and semantic versioning

Bets/Panning/Commitment

Tech details

Tech stack
  • Languages:
    • Go 1.19
    • TypeScript, ES2020:
    • 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
    • Cloudflare
    • namecheap
    • godaddy
  • Tools:
    • gnuMake
    • Docker
    • terraform
  • Logic:
    • PlantUML
    • OpenAI

Architecture

C4 Context Level

architecture-context

Local setup

Requirements

  • git
  • gnuMake
  • docker ~> 20.10

Steps

Follow the steps to provision local development environment.

  1. Clone the repo
git clone git@github.com:kislerdm/diagramastext.git
  1. Export OpenAI access token as the environment variable OPENAI_API_KEY:
export OPENAI_API_KEY=##TOKEN##
  1. Run to provision the local environment:
make localenv

Note:

  1. Run to clean the local environment:
make localenv-teardown

License

Codebase

The codebase is distributed under the Apache 2.0 licence.

Images and diagrams

Creative Commons Licence
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. Permissions beyond the scope of this license may be available at diagramastext.dev.