2025-03-23 15:03:38 +00:00
# Next AI Draw.io
A modern web application that integrates AI capabilities with draw.io diagrams. This tool allows you to create, modify, and enhance diagrams through natural language commands and AI-assisted visualization.
## Features
- **AI-Powered Diagram Creation**: Generate diagrams from natural language descriptions
- **Diagram Modification**: Edit existing diagrams using simple text commands
- **Image Processing**: Upload images to use as references for diagram creation
- **XML Extraction and Processing**: Parse and manipulate draw.io XML files
- **Interactive Chat Interface**: Communicate with AI to refine your diagrams in real-time
- **Diagram History**: Track and restore previous versions of your diagrams
- **Example Templates**: Quick-start with example prompts like "Draw a cat" or "Replicate this flowchart"
2025-03-19 06:04:06 +00:00
## Getting Started
2025-03-23 15:03:38 +00:00
### Prerequisites
- Node.js 18.x or higher
- npm or yarn package manager
- Modern web browser (Chrome, Firefox, Safari, Edge)
### Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/next-ai-draw-io.git
cd next-ai-draw-io
```
2. Install dependencies:
```bash
npm install
# or
yarn install
```
3. Create a `.env.local` file in the root directory with the following variables:
```
OPENAI_API_KEY=your_openai_api_key_here
# Add any other required environment variables
```
4. Run the development server:
2025-03-19 06:04:06 +00:00
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
2025-03-23 15:03:38 +00:00
5. Open [http://localhost:3000 ](http://localhost:3000 ) in your browser to see the application.
## Usage
### Creating a New Diagram
Use the chat interface to describe the diagram you want to create:
```
Create a flowchart showing the user authentication process with login, validation, and dashboard access steps.
```
### Modifying an Existing Diagram
With an existing diagram open, use natural language to make changes:
2025-03-19 06:04:06 +00:00
2025-03-23 15:03:38 +00:00
```
Add a decision node after the validation step that redirects failed attempts to a retry page.
```
2025-03-19 06:04:06 +00:00
2025-03-23 15:03:38 +00:00
### Using Image References
Upload an image as a reference by clicking the attachment button in the chat interface. Then ask the AI to use it as inspiration:
```
Create a similar flowchart to this image but add two more steps at the end.
```
### Using Example Templates
Click on the example prompts in the interface to:
- Generate a cat diagram
- Replicate the example flowchart
## Project Structure
```
app/ # Next.js application routes and pages
extract_xml.ts # Utilities for XML processing
components/ # React components
chat-input.tsx # User input component for AI interaction
chatPanel.tsx # Chat interface with diagram control
ui/ # UI components (buttons, cards, etc.)
lib/ # Utility functions and helpers
utils.ts # General utilities including XML conversion
public/ # Static assets including example images
```
## How It Works
The application uses the following technologies:
- **Next.js**: For the frontend framework and routing
- **OpenAI**: For natural language processing and diagram generation
- **@ai -sdk/react**: For the chat interface and AI interactions
- **draw.io XML**: For diagram representation and manipulation
Diagrams are represented as XML that can be rendered in draw.io. The AI processes your commands and generates or modifies this XML accordingly.
2025-03-19 06:04:06 +00:00
## Learn More
2025-03-23 15:03:38 +00:00
- [Next.js Documentation ](https://nextjs.org/docs ) - learn about Next.js features and API
- [Learn Next.js ](https://nextjs.org/learn ) - an interactive Next.js tutorial
- [draw.io Documentation ](https://www.drawio.com/doc/ ) - learn about draw.io features
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature` )
3. Commit your changes (`git commit -m 'Add some amazing feature'` )
4. Push to the branch (`git push origin feature/amazing-feature` )
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Support & Contact
For support or inquiries, please open an issue on the GitHub repository or contact the maintainer at:
- Email: your.email@example .com
- Twitter: [@yourusername ](https://twitter.com/yourusername )
2025-03-19 06:04:06 +00:00
2025-03-23 15:03:38 +00:00
## Deployment
2025-03-19 06:04:06 +00:00
2025-03-23 15:03:38 +00:00
The easiest way to deploy your Next.js app is to use the [Vercel Platform ](https://vercel.com/new ) from the creators of Next.js.
2025-03-19 06:04:06 +00:00
2025-03-23 15:03:38 +00:00
Check out the [Next.js deployment documentation ](https://nextjs.org/docs/app/building-your-application/deploying ) for more details.
2025-03-19 06:04:06 +00:00
2025-03-23 15:03:38 +00:00
---
2025-03-19 06:04:06 +00:00
2025-03-23 15:03:38 +00:00
Built with ❤️ using [Next.js ](https://nextjs.org/ ) and OpenAI technology.