Real World PlantUML

Yuki Furuyama
3 min readFeb 10, 2018

--

PlantUML is a useful tool for creating a UML diagram in plain text.
With this tool, you can create a wide variety of UMLs, from a simple flowchart to a complex diagram.

There are many websites that can teach you how to create a PlantUML diagram, but when you first start you might run into some problems,

  • I can’t remember the exact syntax… :(
  • How can I create a more complex diagram?
  • Are there any templates I can use instead of starting from scratch?

I’ve created the website Real World PlantUML to solve all of these issues!

The website provides lots of UMLs with their rendered images, allowing you to browse just like a catalog. All of the UMLs have been gathered from GitHub public repositories.

Real World PlantUML

Each UML is designated into one of 6 categories, and you can filter the UMLs by category.

Filter by class diagram

If you’re curious about a specific component like “database”, the search box can help you find what you are looking for. Just enter the word “database” into the search box, and only diagrams containing databases will be displayed.

Search results of “database”

When you click a diagram, the source code is shown so you can use it as a reference or use it as a template to start creating your own UML.

Source code of the UML

Technical details

The website is built on top of Google App Engine with 4 microservices,

  1. web (Go Standard Env): user facing web application
  2. indexer (Go Standard Env): worker for building UML indexes
  3. syntax_checker (Java Flexible Env): web app for checking PlantUML syntax and detecting a diagram type
  4. renderer (Java Flexible Env): PlantUML rendering server.

I’m confident that the App Engine Flexible Environment is the best choice for rendering a PlantUML because it allows Graphviz to be installed to generate images. In other words, Flexible Env can do it because it‘s able to run any application, as long as the app is packaged into a Docker container.

The following diagram shows the overall architecture of the website.

Overall architecture of the website

Finally, the source code of the website is available on GitHub, so if you find a bug, please open an issue. Of course I happily welcome pull requests for new features :)

Enjoy creating your own PlantUML!

--

--

Yuki Furuyama
Yuki Furuyama

Written by Yuki Furuyama

Technical Solutions Engineer @Google Cloud. Opinions are my own and not the views of my employer.