A self-evolving decision engine designed to automate troubleshooting workflows and reduce customer support load.
Flash is an intelligent troubleshooting system powered by an ever-growing Binary Decision Tree. Users are guided through dynamic Yes/No questions until they reach a final solution.
But unlike traditional troubleshooters, Flash introduces a breakthrough:
Any solution node can be converted into a question with two new outcomes — instantly expanding the tree. No coding. No server restarts. No downtime. Flash becomes smarter every time an admin interacts with it.
Companies pay heavily for support agents to repeatedly solve common issues. Flash replaces repetitive tickets with an intelligent, automated system that:
- ❓ asks structured diagnostic questions
- 🌳 builds real-time decision paths
- 🧩 adapts when solutions evolve
- 👩💻 empowers non-technical admins
The result: faster resolutions, lower support cost, and continuously improving logic.
Users answer Yes/No inputs through a clean, responsive UI. Flash tracks their progress until a solution is reached. Session-based state means multiple users can troubleshoot independently.
Admins can modify a leaf node in real-time:
- Select a solution node
- Replace it with a new question
- Add Yes/No outcomes
- Flash instantly rebuilds and serves the updated tree
This is what makes Flash superior to static troubleshooters.
Every decision node is indexed by ID → reference mapping. Expansion and traversal never require tree reconstruction.
Each session stores user progress independently — allowing unlimited parallel usage.
| Layer | Technology |
|---|---|
| Language | Java 17+ |
| Framework | Spring Boot 3 |
| Frontend | Thymeleaf + Bootstrap 5 |
| Data Parsing | Jackson |
| Build Tool | Maven |
| Other | Lombok, DevTools |
- Java 17+
- Maven (optional — wrapper included)
git clone https://github.com/flurry101/flash.git
cd flashWindows:
.\mvnw clean packageMac/Linux:
./mvnw clean package.\mvnw spring-boot:runhttp://localhost:8080
src/main/java/com/example/demo/
│
├── controller
│ └── TroubleshooterController.java # Manages navigation, session flow, routing
│
├── model
│ ├── Node.java # Abstract parent class (encapsulation/ISM)
│ ├── QuestionNode.java # Internal decision node
│ └── SolutionNode.java # Leaf result node
│
└── service
└── TreeService.java # Core engine: load, traverse, expand, index
Tree data stored in:
src/main/resources/data/*.json
Follow this test flow to validate Flash’s unique feature set:
1️⃣ Run the app 2️⃣ Navigate until you hit a solution 3️⃣ Scroll below to the Admin Zone 4️⃣ Enter:
- A new question
- Yes-outcome solution
- No-outcome solution 5️⃣ Submit the form 6️⃣ Restart the decision path 7️⃣ Confirm Flash replaced your old solution with your new question 🎉
This demonstrates successful dynamic mutation of the Binary Decision Tree.
- O(1) lookup operations
- Session-isolated navigation
- No performance drop as data expands
- Unlimited branching depth
- Zero-downtime knowledge growth
Flash remains fast.
We welcome enhancements and ideas.
git checkout -b feature/upgrade
git commit -m "Added improvement"
git push origin feature/upgradeThen open a PR.
Flash isn’t just a Yes/No tree, it’s a learning system. Every admin update makes Flash:
- smarter
- deeper
- richer
- more accurate
What starts small becomes an automated support engine. User by user. Question by question.