Comments (3)
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.
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
from c4-plantuml.
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)
- How DDD and C4 together in PlantUML HOT 2
- No documentation on how to change font size of each elements individually (e.g. technology, relationship text) HOT 3
- addComponentTag aborts if no component elements exist in diagram HOT 5
- Set padding for elements inside a boundary HOT 4
- Element specific tag functions (AddContainerTag, AddComponentTag etc.) are updating bgColor and fontColor globally HOT 3
- Include / link to mweagle/C4-PlantUML-Themes HOT 3
- Themes not working locally HOT 3
- (C4 styled) Sequence diagram HOT 6
- Tags and sprites conflict in Rel (update: sprites have white background, should be transparent) HOT 4
- Image gets cut on the side HOT 1
- Adjust thickness of element border HOT 6
- C4_Dynamic no longer numbers all relationships HOT 6
- error a001 on all diagrams HOT 2
- Odd Legend Rendering for Sequence Diagrams HOT 5
- Question: How do I split functions over multiple lines? HOT 1
- Wrong rendering for Rel_R HOT 4
- AddNodeTag in C4_Deployment throws an error HOT 5
- Support of "all" PlantUML elements can be enabled HOT 4
- Line styling not recognized when using ELK HOT 2
- "Cannot open URL" on Online Server HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from c4-plantuml.