Project Roadmap

A milestone-based plan for the Qt/QML Network Diagram Editor.

Duration: 2 Days

Milestone 1: Project Setup & Basic UI

Establish the foundational structure of the application, including the C++ backend and the main QML window.

  • Initialize CMake project and Qt 6 configuration.
  • Create C++ classes: `DiagramController` and `NetworkElement`.
  • Set up the main application window in QML.
  • Implement a basic toolbar and a placeholder canvas area.

Deliverables:

A runnable skeleton application with a main window.

Duration: 5 Days

Milestone 2: Core Diagramming Functionality

Implement the primary user interactions for creating and manipulating network elements on the canvas.

  • Implement "Add Item" dialog to create new `NetworkElement` instances.
  • Display elements on the canvas using a `Repeater`.
  • Enable drag-and-drop movement for all network items.
  • Implement a visual selection state for items.

Deliverables:

Users can add and move items on the canvas.

Duration: 3 Days

Milestone 3: Connection Drawing & Styling

Develop the system for creating visual links between network items.

  • Implement logic to add connections by selecting two items.
  • Create a `Connection.qml` component to draw lines/curves.
  • Ensure connections update their position when items are moved.
  • Add C++ backend support to store connection data.

Deliverables:

Ability to draw and maintain connections between nodes.

Duration: 4 Days

Milestone 4: Item Properties & Editing

Allow users to modify the properties of existing network elements and connections.

  • Implement an "Edit" dialog (re-using the Add dialog).
  • Allow double-clicking an item to open the edit dialog.
  • Add functionality to delete selected items and connections.
  • Implement context menu (right-click) for quick actions.

Deliverables:

Full CRUD (Create, Read, Update, Delete) operations for diagram elements.

Duration: 4 Days

Milestone 5: Advanced Editor Features

Introduce standard editor tools to improve usability and workflow efficiency.

  • Implement an Undo/Redo stack for major actions.
  • Add zoom in/out and pan functionality to the canvas.
  • Implement an optional snap-to-grid feature for precise alignment.
  • Add functionality to save and load diagrams (e.g., to JSON).

Deliverables:

A more robust and user-friendly editor with professional features.

Duration: 2 Days

Milestone 6: Final Polish & Delivery

Finalize the application for delivery, focusing on stability, documentation, and code quality.

  • Conduct thorough testing and bug fixing.
  • Clean up code and add comments where necessary.
  • Prepare final project documentation and build instructions.
  • Package the source code for final delivery.

Deliverables:

Complete, stable source code and supporting documents.