/umlplusplus

UML++ - a basic C++ editor for modifying and saving UML class diagrams.

Primary LanguageJavaScript

UML++ workflow codecov

UML++ is a C++ & Javascript editor and generator of UML class diagrams.

Features

  • Add, delete, and rename classes within a UML class diagram.
  • Store methods (with parameters) and fields within classes.
  • Add and delete four types of relationships between classes (aggregation, composition, generalization, realization).
  • View classes and diagram through a command line or graphical interface.
  • Save and load JSON files that store UML class diagram information.
  • Save images of generated UML class diagrams within the GUI.

Dependencies

  • A C++ compiler
  • cmake (3.18.1+)
  • git (2.28.0+)

Build Instructions

  1. Clone this repository locally.
git clone --recurse-submodules -j8 https://github.com/DHDodoCode/umlplusplus.git
  1. Go to repository root directory.
cd umlplusplus
  1. Create and then build the project using the following commands.
cmake -B build 
cmake --build build --parallel
  1. Navigate to the build folder that you have created. You must be in the build folder to run the program.
cd build
  1. For CLI, use "--cli" argument. The interface will open in your command line. For help, type 'help' in the command line or see USER_GUIDE.md.
./project --cli
  1. For GUI, provide no argument. Open port 60555 and enter interface in your browser through localhost:60555. When running, press "help" to enter a webpage that provides a user guide for using the GUI interface. Further information about the GUI can be found in USER_GUIDE.md.
./project

Dependencies

JSON for Modern C++ - Niels Lohmann (MIT License)

GoogleTest - Google (BSD-3-Clause)

cpp-httplib - Yuji Hirose (MIT License)

inja - pantor (MIT License)

svg.js - svgdotjs (MIT License)

svg.draggable.js - svtdotjs (MIT License)

svg-pan-zoom - bumbu (BSD 2-Clause "Simplified" License)

cli - daniele77 (Boost Software License 1.0)

Authors

DHDodo - Briar Sauble

jtsha - Jordan Shaffer

ttpyork - Tyler York

NicatFire - Nick Wells

lgnzg - Logan Zug

DragonArchon - Matt Giacoponello