Skip to content

Vineet1025/Rule-Engine-with-AST

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Rule Engine with Abstract Syntax Tree (AST)

📔 Table of Contents

🌟 About the Project

The Rule Engine with Abstract Syntax Tree (AST) is a dynamic application designed to create, evaluate, and combine business rules based on user-defined criteria. This engine uses an AST to represent the logical structure of rules and allows for complex rule evaluation efficiently. The project is built using Spring Boot, Hibernate, and Thymeleaf for an intuitive user interface and seamless backend operations.

📷 Screenshots

screenshot

👾 Technologies Used

Backend
Frontend
Database
Deployment

🎯 Features

  • Dynamic Rule Evaluation: Evaluate user eligibility based on dynamically defined rules.

  • Rule Combination: Combine existing rules into a single AST with OR/AND operations.

  • Error Handling: Inform users if a rule is already combined with another.

  • User-Friendly Interface: Easy navigation and interaction for rule management.

🔑 Environment Variables

To run this project, you will need to add the following environment variables to your .env file or application.properties:

  • db_url
  • db_username
  • db_password

🧰 Getting Started

‼️ Prerequisites

  • Java 17
  • Spring Boot 3.2.5
  • MySQL
  • Maven

⚙️ Installation

  1. Clone the repository:

    git clone https://github.com/Vineet1025/Rule-Engine-with-AST.git
    cd Rule-Engine-with-AST
  2. Configure your application.properties for database connection:

    spring.datasource.url=${db_url} //Enter your database URL (jdbc:mysql://localhost:3306/rule_engine_db)
    spring.datasource.username=${db_username} //Enter your database username
    spring.datasource.password=${db_password} //Enter your database password
  3. Run the application:

    mvn spring-boot:run
  4. Access the application in your browser at http://localhost:8080/api/rule/index

🚩 Deployment

The application has been deployed on AWS EC2, allowing for easy access and management of rule evaluation.

Accessing the Deployed Application

👀 Usage

  1. Create Rules: Users can navigate to the "Create Rule" section to define new rules based on user attributes.

  2. Combine Rules: Select multiple existing rules from checkboxes to combine them, enhancing the logic of evaluations.

  3. Evaluate Rules: Test the defined rules against user data to check for eligibility or compliance.

👋 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

⚠️ License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contact

Vineet Jain - LinkedIn - [email protected]

Project Link: https://github.com/Vineet1025/Weather-App

💎 Acknowledgements

  • Spring Boot for providing an efficient backend framework.
  • MySQL for data management.