Git Product home page Git Product logo

c4mjs's Introduction

C4Model JS

C4MJS makes it easier to store architecture as code and view it by providing:

  1. @c4mjs/cli Command line tool to compile the yaml/json workspace definition
  2. c4model.app React App to view your workspace as interactive C4 Diagraphs rendered by Graphviz

To preview an example workspace visit https://c4model.app/

Workspace

The Workspace allows us to describe our architecture in YAML/JSON

$ref parsing is done automatically so you can bundle/split your architecture docs as you see fit, see Swagger for more info.

See Big Bank Plc Example for an illustrative example of workspace splitting.

CLI

The CLI reads the workspace and creates a bundle. This bundle is then hosted and c4model.app reads and renders it, all on the client.

Usage

mkdir architecture && cd architecture

npx @c4mjs/cli init

npm install && npm run build

This will now generate a workspace.json file in the folders root. ๐Ÿš€

Serve it

npm run serve

Visit c4model.app to view it, pop the URL http://localhost:9876/workspace.json into the bar.

๐ŸŽ‰ Tada ๐ŸŽ‰

Explore the workspace using the interactive viewer.

Guides

See the full Docs and Workspace api at https://c4mjs.github.io/c4mjs/#/

Benefits

Workspace defined in YAML/JSON with hosted Schemas for intellisense:

Loosely coupled App allowing you to create your own apps using @c4mjs/graphviz

Completely Open Source Codebase, all in this repo.

All bundling and rendering is performed client side, no hosting required and no schemas sent anywhere!

Take advantage of all your current development practices to manage and maintain your c4 model architecture.

References

c4mjs's People

Contributors

actions-user avatar jonathanturnock avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

c4mjs's Issues

Entities are not rendered unless there is an associated relationship

Currently the relationships are extracted and the entities at either end of the releationship are added to the graph.

This means we are missing entities without relationships.

As many people draw entities first then add relationships it should still show these if they are within the context

If rendering a workspace context, then show all Groups, People and Systems
If rendering a group then show all people and Systems in the group
If rendering a system then show all Containers in the system

Highlight Relationships on Mouse Over

Some charts can get quite cluttered and the Graphviz arrows are not perfect.

To mitigate this it would be good for the Relationships to be highlighted (Stroke 4px or something) when the associated Entity (System, Container etc) is moused over.

Similar to when the mouse is over the relationship

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.