Skip to content

G26karthik/UML-Designer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UML Designer AI

A powerful, user-friendly platform for generating, analyzing, and visualizing UML diagrams from code or natural language prompts.

License: MIT

πŸŽ₯ Demo Video

UML Designer Demo Video
🎬 Click the thumbnail above to watch the full demo on YouTube

What is UML Designer AI?

UML Designer AI is an open-source tool that helps you turn your ideas, code, or requirements into clear, professional UML diagramsβ€”instantly. Whether you’re a developer, student, project manager, or business analyst, you can:

  • Paste code (Python, Java, C#, C++, and more) and get a visual diagram of its structure.
  • Describe your system in plain English and see it visualized as a UML diagram.
  • Collaborate: Share diagrams with your team, export images, or embed them in docs.

Why UML?

Unified Modeling Language (UML) is the global standard for visualizing software architecture, processes, and relationships. It bridges the gap between technical and non-technical stakeholders.



✨ Key Features

  • Prompt-to-UML: Instantly generate diagrams from code or natural language.
  • Multi-language Support: Works with Python, Java, C#, C++, and more.
  • Modern Web UI: Clean, intuitive interfaceβ€”no technical skills required.
  • RESTful API: Integrate with other tools or automate diagram generation.
  • Customizable & Extensible: Modular backend and parser for advanced users.
  • Cloud-Ready: Easy deployment to cloud platforms or your own server.
  • Collaboration: Export, share, and embed diagrams anywhere.
  • Testing Suite: Robust tests for reliability and quality.


πŸš€ Getting Started

Prerequisites

  • Node.js (v18+ recommended)
  • Python (3.9+ recommended)
  • npm (v9+)
  • (Optional) Docker for containerized deployment

1. Clone the Repository

git clone https://github.com/<your-org>/uml.git
cd uml

2. Install Backend (API Server)

cd backend
npm install

3. Install Frontend (Web App)

cd ../frontend
npm install

4. Set Up Python Parser (Code Analyzer)

cd ../python-parser
pip install -r requirements.txt

πŸ–₯️ Usage

Start All Services (Development)

Open three terminals and run each service:

# 1. Backend (Node.js)
cd backend
npm run dev

# 2. Frontend (Next.js)
cd ../frontend
npm run dev

# 3. Python Parser (Flask)
cd ../python-parser
python app.py

Example: Generate a UML Diagram

  1. Open your browser to http://localhost:3000
  2. Paste code or type a description (e.g., "A system with a User, Account, and Transaction")
  3. Choose your diagram type (Class, Sequence, etc.)
  4. Click Generate and see your diagram appear!

Activity Diagram Example



βš™οΈ Configuration

  • Backend: Set environment variables in backend/.env (see backend/README.md for details)
  • Frontend: Edit frontend/utils/config.js or use environment variables
  • Python Parser: See python-parser/README.md for advanced options

πŸ› οΈ API Endpoints & Core Components

Backend (Node.js/Express)

  • POST /api/analyze β€” Analyze code and return diagram data
  • POST /api/generate-plantuml β€” Generate PlantUML from code/prompt
  • GET /api/health β€” Health check endpoint

See backend/routes/api.js for full details.

Python Parser (Flask)

  • POST /analyze β€” Analyze a GitHub repo or ZIP upload and return schema/metadata
  • POST /generate-plantuml β€” Generate PlantUML from analysis schema
  • POST /uml-from-prompt β€” Generate UML from a natural language prompt
  • GET /health β€” Health check endpoint

See python-parser/app.py for all endpoints and request/response formats.

How it works:

flowchart TD
	A[User/Client] -->|Request| B(Frontend UI)
	B -->|API Call| C(Backend Node.js)
	C -->|HTTP| D(Python Parser Flask)
	D -->|UML Data| C
	C -->|Response| B
	B -->|Diagram| A
Loading

uml/

πŸ—‚οΈ Folder / Architecture Overview

Click to expand project structure
uml/
β”œβ”€β”€ backend/         # Node.js REST API server
β”‚   β”œβ”€β”€ routes/      # API route handlers
β”‚   β”œβ”€β”€ scripts/     # Deployment and utility scripts
β”‚   β”œβ”€β”€ utils/       # Core backend utilities
β”‚   └── __tests__/   # Backend test suite
β”œβ”€β”€ frontend/        # Next.js web application
β”‚   β”œβ”€β”€ components/  # React components
β”‚   β”œβ”€β”€ pages/       # Next.js pages
β”‚   β”œβ”€β”€ utils/       # Frontend utilities
β”‚   └── __tests__/   # Frontend test suite
β”œβ”€β”€ python-parser/   # Flask server and code analysis engine
β”‚   β”œβ”€β”€ analyzers/   # Language analyzers
β”‚   β”œβ”€β”€ plantuml/    # PlantUML generation logic
β”‚   β”œβ”€β”€ utils/       # Utility modules (error handling, security, etc.)
β”‚   β”œβ”€β”€ __tests__/   # Python parser tests
β”‚   └── requirements.txt
β”œβ”€β”€ diagrams/        # Example output diagrams
β”œβ”€β”€ logs/            # Log files
└── ...              # Project configs, docs, and scripts

Visual Overview

UML Designer AI provides a complete visual map of your system, from user actions to backend architecture. Here's how your codebase is represented:

1. Class Structure

Shows the main classes and their relationships.

Class Diagram
Class Diagram: Core system classes and their connections

2. Use Case Flow

Illustrates how users interact with the system.

Use Case Diagram
Use Case Diagram: User actions and system features

3. Activity & State

Shows the workflow and system states during analysis and diagram generation.

Activity Diagram
Activity Diagram: End-to-end workflow
State Diagram
State Diagram: System states

4. Sequence & Communication

Depicts how components interact to process requests.

Sequence Diagram
Sequence Diagram: Request flow
Communication Diagram
Communication Diagram: Component messaging

5. Component Overview

Shows the major modules and their connections.

Component Diagram
Component Diagram: Major modules



🀝 Contributing Guidelines

We welcome contributions from everyoneβ€”developers, designers, writers, and testers! To get started:

  1. Fork the repo and create your branch
  2. Write clear, well-tested code and update/add documentation
  3. Open a pull request with a detailed description of your changes

See CONTRIBUTING.md for more details.


πŸ“ License

This project is licensed under the MIT License.


πŸ™ Credits

  • Inspired by the open-source UML and diagramming community
  • Built with Node.js, Next.js, Flask, and PlantUML
  • Special thanks to all contributors and testers


For questions, issues, or feature requests, please open an issue on GitHub.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published