zeba_academy_skill_tree
A powerful Flutter package for building interactive skill trees and learning paths with unlockable nodes, dependency management, learning tracks, and visual progress tracking.
Perfect for:
- š E-learning platforms
- š Course progression systems
- š§ Skill roadmap applications
- š® Gamified education
- š Achievement systems
- š Learning journey experiences
Features
ā Unlockable skill nodes ā Dependency-based progression ā Learning tracks support ā Progress visualization ā Custom node styling ā Responsive layouts ā State management ready ā Smooth animations ā Lightweight architecture ā Easy integration
Preview
Basics
ā
Widgets
ā
State Management
ā
Advanced Flutter
Installation
Add dependency:
dependencies:
zeba_academy_skill_tree: latest
Install:
flutter pub get
Import:
import 'package:zeba_academy_skill_tree/zeba_academy_skill_tree.dart';
Quick Start
Create Nodes
final nodes = [
SkillNode(
id: '1',
title: 'Basics',
icon: Icons.school,
status: SkillStatus.unlocked,
),
SkillNode(
id: '2',
title: 'Widgets',
icon: Icons.widgets,
dependencies: ['1'],
),
SkillNode(
id: '3',
title: 'State',
icon: Icons.memory,
dependencies: ['2'],
),
];
Setup Controller
final controller =
SkillTreeController(
nodes,
);
Build UI
ChangeNotifierProvider(
create: (_) => controller,
child: const SkillTree(),
)
Unlock Logic
A node becomes available only after all dependency nodes are completed.
Example:
Course A
ā
Course B
ā
Course C
Complete A ā unlock B Complete B ā unlock C
Progress Tracking
Track user completion percentage automatically.
controller.totalProgress
Update progress:
controller.updateProgress(
'2',
0.6,
);
Complete node:
controller.complete(
'2',
);
Learning Tracks
Group nodes into structured paths.
SkillTrack(
title: 'Flutter Mastery',
nodes: [
basics,
widgets,
state,
],
);
Example
MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text(
'Skill Tree',
),
),
body: const SkillTree(),
),
);
Package Structure
lib/
models/
āāā skill_node.dart
āāā skill_track.dart
controllers/
āāā skill_tree_controller.dart
widgets/
āāā skill_tree.dart
āāā progress_header.dart
āāā skill_node_widget.dart
utils/
āāā unlock_engine.dart
Roadmap
Zoomable treeDrag interactionsFirebase syncXP systemAchievementsNode animationsOffline persistenceRiverpod supportAnalytics
Contributing
Contributions are welcome.
- Fork repository
- Create branch
git checkout -b feature/new-feature
- Commit changes
git commit -m "Add feature"
- Push
git push origin feature/new-feature
- Open Pull Request
License
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
See the LICENSE file for details.
About Me
⨠Iām Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.
You can learn more about me and my work:
š https://sufyanism.com š¼ https://www.linkedin.com/in/sufyanism
Your all-in-one learning hub!
š Explore courses and resources in coding, tech, and development at Zeba Academy.
Empower yourself with practical skills through curated tutorials, real-world projects, and hands-on experience.
š https://zeba.academy š» https://code.zeba.academy ā¶ https://www.youtube.com/@zeba.academy šø https://www.instagram.com/zeba.academy/
Thank you for visiting ā¤ļø