Giter Club home page Giter Club logo

gruml's Introduction

GRUML

Tired of collaborating over UML diagrams or don't use them at all? We feel you. We know how tedious it is to use or even think of UML diagrams for large codebases.Thus, we bring you RUML - Rectangular UML diagrams. You can know what all classes are dependent on one another, who inherits from whom, what is the flow of control of your codebase when executed in different scenarios - all in an Excel sheet.

Installation

Docker

Click here to install Docker.

Install GRUML

docker run -d --name gruml avisrivastava254084/gruml:latest

Running the application

docker exec gruml python3 generate_ruml.py --help

Example

A simple example

docker exec gruml python3 generate_ruml.py https://github.com/kebab-mai-haddi/python3-class-inheritance-dependency-example -u test_cli -d driver -dp driver.py -df main_2

docker cp gruml://home/ubuntu/generate_uml/Use_Case_test_cliDependency_2.xlsx demo_video.xlsx

Open the demo_video.xlsx file and see the visualization of the codebase.

gruml's People

Contributors

kebab-mai-haddi avatar dependabot[bot] avatar

Stargazers

Prastut Kumar avatar  avatar

Watchers

James Cloos avatar  avatar Piyush Kundnani avatar

Forkers

bellyfat

gruml's Issues

Market Launch

We have to launch GRUML to the world out there as an open-source tool. There are two ways:

  1. Ideal Way
    The ideal way would be to take the best route of Python packaging and have our users install gruml as: pip3 install gruml and then they can use gruml as it is. This will take time as we want some changes in cpython which are currently a WIP and I will try to finish this off from my end as soon as possible. But taking this route will not let us release GRUML by the end of April.

  2. The faster and temporary way
    GRUML is completed and it should be launched as soon as possible to further improve. It adds so much value (In My Honest Opinion) that it should be launched right away regardless of whether we make further changes to it. And so, I propose to i) spin up an ec2-instance on AWS (or GCP, etc), ii) let users interact with gruml via a Flask app or something iii) Users will have an output which would be a link of the GRUML CSV file with(out) sequence diagram. Our web interface will basically ask them for all the input needed. This method is good because it will have our users ( and surveyors ) not need to install anything and just explore GRUML on their source code. However, our users will have to provide a Github link of their source code directory. I think we can expect that. As an addition, we will provide GRUML outputs of 10 projects in Python (Pandas, Spyder, etc) for our users to explore.

sequence diagram in ruml

The RUML output contains a sequence diagram as well, the current implementation doesn't have any.

Generate the sequence text file

This issue is a sub-issue of # 10.
#10 is using a tool that generates the sequence diagram from the text file. Now, the task is to generate a text file.

Although, if the text file is generated, we might be able to use that only to plot in excel.

lacking code modularity

This codebase should have classes and inheritance in order to have "eat your own dog food"

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.