Skip to content

hendriari/flutter_decision_making

Repository files navigation

pub version

✨ About

Flutter package for practical Multi-Criteria Decision Making (MCDM). Providing algorithms such as AHP, SAW, and TOPSIS to help developers perform weighting, evaluation, and ranking of alternatives easily and accurately within their Flutter applications.

Status Algorithm Available in version
AHP (Analytic Hierarchy Process) 1.0.0
SAW (Simple Additive Weighting) 1.1.0
TOPSIS (Technique for Order Preference by Similarity to Ideal Solution) 1.2.0

🎯 Typical Use Cases

Suitable for building decision support features such as:

  • HR candidate or promotion selection
  • Vendor or project evaluation
  • Scholarship or student ranking
  • Feature prioritization in product management
  • Internal corporate decision-making systems
  • Recommendation or comparison apps

📚 Usage Guide

You can use this package in two ways depending on your needs:

  1. Using all algorithms together
    Initialize the FlutterDecisionMaking class to access all available algorithms.
late FlutterDecisionMaking _decisionMaking;
AhpResult? _ahpResult;
List<WeightedDecisionResult>? _sawResult;
List<WeightedDecisionResult>? _topsisResult;

@override
void initState() {
  super.initState();
  _decisionMaking = FlutterDecisionMaking();
}

// Usage example:
// for AHP
_ahpResult = await _decisionMaking.ahp.getAhpResult(...);

// for SAW
_sawResult = await _decisionMaking.saw.getSawResult(...);

// for TOPSIS
_topsisResult = await _decisionMaking.topsis.getTopsisResult(...);

This is the easiest way if you want to use multiple algorithms in your project.

  1. Using a specific algorithm only

If you only need a single algorithm (e.g., AHP), you can import and initialize it directly:

late AHP _ahp;
AhpResult? _ahpResult;

@override
void initState() {
  super.initState();
  _ahp = AHP();
}

// Usage example:
_ahpResult = await _ahp.getAhpResult(...);

📖 Algorithm Docs

For details on how to use the algorithm, you can visit the following documentation.

Link Description
AHP Doc If you need a method that is able to determine weights accurately through pairwise comparisons, validate the consistency of assessments, and work well on subjective or multilevel criteria.
SAW Doc If you need a simple, fast, easy to calculate, and easy to implement method for ranking alternatives based on criteria weights and values.
TOPSIS Doc If you need a method that ranks alternatives based on their distance to the ideal best and ideal worst solutions, providing a more discriminative and robust decision-making result.

📈 Performance Profiling

Major method logs:

  • Start and end timestamps.
  • Execution duration (in milliseconds).

Useful for debugging and optimization during development.


💡 Want Another Algorithm?

We are continuously improving this package 🚀

If you would like to see a new algorithm (e.g., WP, ELECTRE, MOORA, PROMETHEE, etc.) added:

👉 Please open a discussion: GitHub Discussions

⚠️ Note: New algorithms will be prioritized based on:

  • Community interest
  • Contribution support (PRs are welcome!)
  • Maintainer availability

Contributions are highly appreciated 🙌


🎁 Support Me

Ko-Fi Saweria Badge


🙋‍♂️ Contributing

We welcome all contributions and suggestions!

👉 Open an issue or submit a pull request at GitHub Repo

About

Flutter package for practical multi-criteria decision-making, providing algorithms such as AHP, SAW, and TOPSIS (coming soon) to help developers perform weighting, evaluation, and ranking of alternatives easily and accurately within their Flutter applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors