🧠 Zeba Academy Concept Map

A Flutter package for creating interactive concept maps, mind maps, and visual learning diagrams with draggable nodes, relationships, zoom, pan, custom node types, and export support.


šŸš€ Features

Zeba Academy Concept Map provides developers with tools to create beautiful interactive learning maps inside Flutter applications.

✨ Included Features

āœ… Interactive Mind Maps āœ… Topic Relationships āœ… Draggable Nodes āœ… Drag & Drop Support āœ… Zoom & Pan Canvas āœ… Custom Node Types āœ… Custom Node Colors āœ… Node Connections āœ… JSON Export āœ… Lightweight API āœ… Flutter Friendly Architecture


šŸ“¦ Installation

Add this package to your pubspec.yaml:

dependencies:
  zeba_academy_concept_map: ^0.0.1

Run:

flutter pub get

šŸ›  Usage

Import the package:

import 'package:zeba_academy_concept_map/zeba_academy_concept_map.dart';

Create Controller

final controller = ConceptMapController();

Add Nodes

controller.addNode(

  ConceptNode(

    id: "flutter",

    title: "Flutter",

    position: Offset(200, 200),

  ),

);

Add another node:

controller.addNode(

  ConceptNode(

    id: "widgets",

    title: "Widgets",

    position: Offset(500, 300),

  ),

);

Connect Topics

Create relationships between concepts:

controller.connect(
  "flutter",
  "widgets",
);

Result:

Flutter
    |
    |
 Widgets

🧩 Display Concept Map

Add the widget:

ConceptMap(

 controller: controller,

)

šŸ–±ļø Drag & Drop

Every node supports interaction.

Users can:

  • Move nodes
  • Rearrange concepts
  • Create custom layouts

No extra setup required.


šŸ” Zoom & Pan

Built-in canvas navigation:

  • Pinch zoom
  • Mouse zoom
  • Touch movement
  • Large workspace support

šŸŽØ Custom Node Types

Create custom learning nodes:

ConceptNode(

 id: "dart",

 title: "Dart",

 type: "language",

 color: Colors.orange,

 position: Offset(300,400),

)

Examples:

language
lesson
topic
category
custom

šŸ“¤ Export Maps

Export your concept map:

final json =
MapExporter.json(controller);

Example output:

{
  "nodes": [
    {
      "id": "flutter",
      "title": "Flutter",
      "x": 200,
      "y": 200
    }
  ],
  "edges": [
    {
      "from": "dart",
      "to": "flutter"
    }
  ]
}

šŸ“ Package Structure

lib/

ā”œā”€ā”€ zeba_academy_concept_map.dart

└── src/

    ā”œā”€ā”€ models/

    │   ā”œā”€ā”€ map_node.dart
    │   └── map_edge.dart

    ā”œā”€ā”€ widgets/

    │   └── concept_map.dart

    ā”œā”€ā”€ controllers/

    │   └── map_controller.dart

    ā”œā”€ā”€ painters/

    │   └── map_painter.dart

    └── utils/

        └── exporter.dart

šŸŽÆ Use Cases

Perfect for:

šŸ“š Education Apps 🧠 Mind Mapping Apps šŸ« Learning Platforms 🌳 Skill Tree Systems šŸ“ Knowledge Management šŸ’» Coding Courses šŸ“Š Visual Planning Tools


šŸ“‹ Requirements

Flutter:

>=3.24.0

Dart:

>=3.12.0

šŸ¤ Contributing

Contributions are welcome.

Steps:

  1. Fork the repository

  2. Create a branch

git checkout -b feature/new-feature
  1. Commit changes
git commit -m "Add new feature"
  1. Push changes
git push origin feature/new-feature
  1. Open a Pull Request

šŸ‘Øā€šŸ’» About Me

✨ I’m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.

You can learn more about my work:

🌐 Website https://sufyanism.com/

šŸ’¼ LinkedIn https://www.linkedin.com/in/sufyanism


šŸš€ Zeba Academy

Your all-in-one learning hub!

Explore courses and resources in:

  • Coding
  • Technology
  • Development
  • Real-world projects

Level up your tech skills with practical learning resources. šŸ’»āœØ


āž” Main Website:

https://zeba.academy

āž” Coding Resources:

https://code.zeba.academy

āž” YouTube Tutorials:

https://www.youtube.com/@zeba.academy

āž” Instagram:

https://www.instagram.com/zeba.academy/


šŸ“„ License

Copyright (C) 2026 Sufyan bin Uzayr

This project is licensed under:

GNU General Public License v3.0

You are free to:

āœ… Use āœ… Study āœ… Modify āœ… Share āœ… Distribute

under the terms of GPL-3.0.

See the LICENSE file for full license details.


⭐ Support

If this package helps you:

⭐ Star the project šŸ¤ Contribute šŸ“¢ Share with developers

Thank you for supporting open-source development ā¤ļø