Skip to content
This repository was archived by the owner on Mar 21, 2026. It is now read-only.

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

ExpertSystem_BrokenDetail

Overview

ExpertSystem_BrokenDetail is a Qt desktop expert system that helps identify a likely faulty car component from observed symptoms.

The application narrows candidates as the user selects factors (symptoms). When only one candidate remains, the system returns a diagnosis.

Why This Project Matters

This project demonstrates a clear, educational example of rule-based filtering in a graphical interface:

  • Symptom-driven narrowing of possible causes
  • Deterministic behavior that is easy to inspect
  • Knowledge stored outside code in a text resource for simple updates

Quick Start

  1. Open ExpertSystem_BrokenDetail/ExpertSystem/ExpertSystem.pro in Qt Creator.
  2. Build the project with a Qt kit that supports Widgets and C++17.
  3. Run the application.
  4. In the UI, select factors in the left list to narrow down possible broken details.

Features

  • Two-list workflow: available factors and selected factors
  • Incremental filtering of candidate details after each selection
  • Selection management with Select, Remove, and Clear actions
  • Knowledge base loaded from an embedded Qt resource file

Technology Stack

  • Language: C++17
  • Framework: Qt (Core, Gui, Widgets)
  • Project format: qmake (.pro)
  • UI: Qt Widgets (mainwindow.ui)

Prerequisites

System Requirements

  • Qt 5 or newer with Widgets module
  • C++17-compatible compiler
  • qmake (or Qt Creator with qmake support)

Dependencies

  • No external runtime services
  • No database server required

Build Instructions

Option 1: Qt Creator (recommended)

  1. Open ExpertSystem_BrokenDetail/ExpertSystem/ExpertSystem.pro.
  2. Select a valid desktop Qt kit.
  3. Build and run.

Option 2: Command line with qmake

From ExpertSystem_BrokenDetail/ExpertSystem/:

qmake ExpertSystem.pro
make

On Windows with MinGW, mingw32-make may be required instead of make.

Running the Application

After building, start the generated executable and use the interface:

  1. Select one symptom from the left list.
  2. Click Select to move it to the chosen list.
  3. Repeat until one detail remains.
  4. Read the diagnosis shown in the information dialog.

Use Remove to undo one selected symptom or Clear to reset all selections.

Project Structure

  • ExpertSystem_BrokenDetail/ExpertSystem/main.cpp: application entry point
  • ExpertSystem_BrokenDetail/ExpertSystem/mainwindow.h: main window declarations and data structures
  • ExpertSystem_BrokenDetail/ExpertSystem/mainwindow.cpp: filtering logic, resource loading, and UI actions
  • ExpertSystem_BrokenDetail/ExpertSystem/mainwindow.ui: widget layout and controls
  • ExpertSystem_BrokenDetail/ExpertSystem/details&factors.txt: expert knowledge (detail-to-factors mapping)
  • ExpertSystem_BrokenDetail/ExpertSystem/database.qrc: Qt resource configuration
  • ExpertSystem_BrokenDetail/ExpertSystem/ExpertSystem.pro: qmake build configuration

Extending the Expert Knowledge

To add or adjust domain knowledge:

  1. Edit ExpertSystem_BrokenDetail/ExpertSystem/details&factors.txt.
  2. Keep the existing detail: factor, factor, factor pattern used in the file.
  3. Rebuild and run the application.
  4. Validate new factors and diagnoses through the UI workflow.

Known Limitations

  • No confidence scores or ranked alternatives
  • Exact-text factor matching only
  • No import/export UI for the knowledge base
  • No built-in persistence of user sessions

License

MIT License. See ExpertSystem_BrokenDetail/LICENSE.

About

Qt desktop expert system that helps identify a likely faulty car component from observed symptoms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages