A web-based tool that guides users through decision-making processes using an interactive, user-friendly flow chart interface. Think of it as a choose-your-own-adventure for decisions.
- XML-Based Data Storage - Decision tree data stored as standard XML for easy editing and portability
- Client-Side Viewer - Built with HTML, CSS, and JavaScript for universal compatibility
- Cross-Platform - Host on any web server or run locally
- Visual Editor - PHP-driven editor for creating decision trees without manual XML editing
- No Database Required - Simple file-based system
- Responsive Design - Works on desktop and mobile devices
View Live Demo | Watch Video Tutorial
- Web Server (Apache, Nginx, or any HTTP server)
- PHP 7.4+ (PHP 8.x recommended)
- Write permissions on the
xml/directory
-
Clone the repository
git clone https://github.com/emaag/interactive-decision-tree.git cd interactive-decision-tree -
Set directory permissions
chmod 755 xml/ # Or, if necessary: chmod 777 xml/ -
Configure your web server to point to the repository directory
-
Access the editor in your web browser:
http://your-domain.com/interactive-decision-tree/editTree.php
# Coming soon - Docker support planned- Navigate to
editTree.phpin your browser - Click "Create New Decision Tree"
- Add questions and decision paths using the visual editor
- Save your decision tree (stored as XML in the
xml/directory)
- Navigate to
showTree.htmlin your browser - Select your decision tree from the list
- Users can now interact with your decision tree by answering questions
<?xml version="1.0" encoding="UTF-8"?>
<tree>
<node id="1">
<question>What is your question?</question>
<option next="2">Answer A</option>
<option next="3">Answer B</option>
</node>
<!-- Additional nodes... -->
</tree>interactive-decision-tree/
├── xml/ # Decision tree XML files (needs write permission)
├── css/ # Stylesheets
├── js/ # JavaScript files
├── editTree.php # Visual editor for creating/editing trees
├── showTree.html # Viewer for displaying decision trees
├── LICENSE # MIT License
└── README.md # This file
Contributions are welcome! Please see CONTRIBUTING.md for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Found a bug? Please open an issue on GitHub with:
- Description of the problem
- Steps to reproduce
- Expected behavior
- Screenshots (if applicable)
This project is licensed under the MIT License - see the LICENSE file for details.
Eric Maag
- GitHub: @emaag
- Thanks to all contributors who have helped improve this project
- Inspired by the need for simple, accessible decision-making tools
This project has been forked by organizations including legal service providers and educational institutions to help users navigate complex decision-making processes.
⭐ Star this repository if you find it useful!