This project implements a Computer Diagnostic Expert System, which assists users in diagnosing computer hardware issues based on observed symptoms. The system allows users to input symptoms and then generates a questionnaire for further precision in identifying the faulty hardware component. Once the questionnaire is completed, the system displays the faulty component, along with other potentially affected components.
- Provides a user-friendly interface for accessing the application.
Allows users to:
- Input symptoms through an easy-to-use form.
- Manipulate entered facts (symptoms) if necessary.
- Deduces hardware issues based on entered symptoms.
- Offers an interface for experts to access the application.
- Recognizes experts via login credentials to allow manipulation of the rule base.
Allows experts to:
- Authenticate
- Add/update/delete a symptom
- Add/update/delete an issue (faulty component)
- Authentication & Authorization using JWT (json web tokens)
- Protected routes
- Proteced apis using middlewares
The knowledge is represented using a rule-based system. Rules define relationships between symptoms and hardware issues.
The system employs forward chaining
reasoning to deduce hardware issues based on input symptoms. This strategy allows the system to determine the faulty component by matching input symptoms with predefined rules.
- Frontend: React with TypeScript and Tailwind CSS for the user interface.
- Backend: Node.js with Express for server-side logic.
- Database: SQLite for storing user inputs and expert rules.
- Clone the repository:
git clone https://github.com/y4riss/expertsystem.git
cd expertsystem
- Install dependencies:
cd frontend && npm install
cd ../backend && npm install
- Start the backend server:
cd backend
npm run dev
- Start the frontend application
cd ../frontend
npm start
- Access the application
username: admin
password: admin
| http://localhost:5173/dashboard
- GET REQUEST
| http://localhost:3000/api/rules/issues
| http://localhost:3000/api/rules/symptoms
- POST REQUEST
| http://localhost:3000/api/auth/login
| http://localhost:3000/api/auth/logout
| http://localhost:3000/api/rules/issue
| http://localhost:3000/api/rules/symptom
| http://localhost:3000/api/diagnosis
- PUT / DELETE REQUEST