Coder Social home page Coder Social logo

Comments (3)

aheil avatar aheil commented on May 21, 2024

The layout should be based on the capabilities and limitations of GraphViz. There is also a current discussion if GraphViz should be included in PlantUML. Said that, maybe there are more possibilities to deal with GraphViz layouts when using the C4 extension.

Link to the PlantUML forum: https://forum.plantuml.net/12468/plug-and-play-installation-for-windows

from c4-plantuml.

adrianvlupu avatar adrianvlupu commented on May 21, 2024

Hi, sadly this has more to do with plantUML itself rather than this library. There are a couple of workarounds in place, usually I tend to mess around with Rel_U, Rel_L, Rel_D, Rel_R to see what works best in these scenarios. There is also a hidden relationship that can be added to help out in these cases Lay_U, Lay_L, Lay_D, Lay_R.

It this particular diagram case I would go with

@startuml C4_Elements
!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/release/1-0/C4_Container.puml

skinparam linetype ortho

LAYOUT_LEFT_RIGHT

Person(OrbitShareUser, "Orbit-Share User", "A User of the Orbit-Share web solution, with a personal UNI-Login Account")

System_Boundary(WebSolution, "Orbit-Share Web Solution"){
    Container(SPA, "Single-Page-Application", "Container: Angular", "Client containing all of the websites UI functionality for teachers using their preferenced web browser")
    Container(DeployedPage, "Deployed Web Server", "Container:Node.js, Express.js & Heroku CLI", "Deployed webserver")
    Container(API, "REST API", "Container:Node.js & Express.js", "Allows users to access and share teaching resources")
    ContainerDb(collectionDB, "Orbit-Share-Database", "Containts User, Content and Collection data into their respective collections")
}
System_Ext(UserDevice, "User's Device", "Stores the exported teaching resource(s) to the users device")
System_Ext(UniLogin, "UNI-Login Management System", "Optional Description")
System_Ext(OrbitBox, "ORBIT-Box", "A System that contains the sensors and actuators necessary to conduct a lessons experiments, can contain and view the teaching resource")

Rel(OrbitShareUser, DeployedPage, "Visits orbitshare.com", "HTTPS")
Rel(DeployedPage, SPA, "Delivers to user's browser")

Rel(SPA, API, "Makes API calls to", "HTTP")

Rel_L(API, collectionDB, "Reads from and writes to")
Rel(API, UserDevice, "Downloads teaching resource to")
Rel(API, UniLogin, "Authenticates user login using","SAML")
Rel(API, OrbitBox, "Exports Orbit-Box Files to")

@enduml

that ends up looking like this

C4_Elements

from c4-plantuml.

Bernold1 avatar Bernold1 commented on May 21, 2024

Hi @adrianvlupu thank you for the quick response! Looks really nice like that! Is there anyway you can write about Rel_U, Rel_L, Rel_D, Rel_R in the documentation for this project? But thank you!

from c4-plantuml.

Related Issues (20)

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.