This is a full-stack application for creating and managing flow graphs. It consists of a React frontend and a FastAPI backend.
- Create, edit, and delete nodes
- Connect nodes with edges
- Different node types with various colors
- Real-time updates
- Persistent storage (in-memory for now, can be extended to use a database)
- Python 3.8+
- Node.js 14+
- npm or yarn
- Create a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Run the backend server:
cd backend
uvicorn main:app --reloadThe backend will be available at http://localhost:8000
- Install dependencies:
cd interface
npm install- Start the development server:
npm startThe frontend will be available at http://localhost:3000
GET /nodes- Get all nodesPOST /nodes- Create a new nodePUT /nodes/{node_id}- Update a nodeDELETE /nodes/{node_id}- Delete a nodeGET /edges- Get all edgesPOST /edges- Create a new edgeDELETE /edges/{edge_id}- Delete an edge
The backend is built with FastAPI and provides a RESTful API for managing nodes and edges. The current implementation uses in-memory storage, but it can be easily extended to use a database.
The frontend is built with React and uses ReactFlow for the graph visualization. It communicates with the backend API to persist changes.
- Add database integration (e.g., PostgreSQL)
- Add user authentication
- Add graph export/import functionality
- Add more node types and customization options
- Add undo/redo functionality
- Add graph validation rules
- Add collaborative editing features