{"id":17838137,"url":"https://github.com/vineet1025/rule-engine-with-ast","last_synced_at":"2026-04-28T11:05:26.911Z","repository":{"id":259238230,"uuid":"874819559","full_name":"Vineet1025/Rule-Engine-with-AST","owner":"Vineet1025","description":"Rule Engine with Abstract Syntax Tree (AST)","archived":false,"fork":false,"pushed_at":"2024-10-24T13:04:50.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-08T04:45:57.593Z","etag":null,"topics":["hibernate","java","springboot","sql","thymeleaf"],"latest_commit_sha":null,"homepage":"http://13.201.204.129:9000/api/rule/index","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vineet1025.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-18T14:16:30.000Z","updated_at":"2024-10-24T13:04:54.000Z","dependencies_parsed_at":"2024-10-27T21:36:37.063Z","dependency_job_id":null,"html_url":"https://github.com/Vineet1025/Rule-Engine-with-AST","commit_stats":null,"previous_names":["vineet1025/rule-engine-with-ast"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vineet1025%2FRule-Engine-with-AST","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vineet1025%2FRule-Engine-with-AST/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vineet1025%2FRule-Engine-with-AST/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vineet1025%2FRule-Engine-with-AST/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vineet1025","download_url":"https://codeload.github.com/Vineet1025/Rule-Engine-with-AST/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246827758,"owners_count":20840464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hibernate","java","springboot","sql","thymeleaf"],"created_at":"2024-10-27T20:52:26.611Z","updated_at":"2026-04-28T11:05:26.860Z","avatar_url":"https://github.com/Vineet1025.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eRule Engine with Abstract Syntax Tree (AST)\u003c/h1\u003e\n  \u003ch3\u003e\n  :zap: \u003ca href=\"http://13.201.204.129:9000/api/rule/index\"\u003eLive Project \u003c/a\u003e\n\u003c/h3\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- Table of Contents --\u003e\n# :notebook_with_decorative_cover: Table of Contents\n\n- [About the Project](#star2-about-the-project)\n  * [Screenshots](#camera-screenshots)\n  * [Technologies Used](#space_invader-technologies-used)\n  * [Features](#dart-features)\n  * [Environment Variables](#key-environment-variables)\n- [Getting Started](#toolbox-getting-started)\n  * [Prerequisites](#bangbang-prerequisites)\n  * [Installation](#gear-installation)\n- [Deployment](#deployment)\n- [Usage](#eyes-usage)\n- [Contributing](#wave-contributing)\n- [License](#warning-license)\n- [Contact](#handshake-contact)\n- [Acknowledgements](#gem-acknowledgements)\n\n\u003c!-- About the Project --\u003e\n## :star2: About the Project\nThe 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.\n\u003c!-- Screenshots --\u003e\n### :camera: Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"https://res.cloudinary.com/divq45mjo/image/upload/v1729698217/Screenshot_2024-10-23_211007_ypi60p.png\" alt=\"screenshot\" width=\"400\"/\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"https://res.cloudinary.com/divq45mjo/image/upload/v1729698217/Screenshot_2024-10-23_211059_ck3ps6.png\" width=\"400\"/\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\u003c!-- TechStack --\u003e\n### :space_invader: Technologies Used\n\n\u003cdetails\u003e\n  \u003csummary\u003eBackend\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://www.java.com/en/\"\u003eJava\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://spring.io/projects/spring-boot\"\u003eSpring Boot\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://hibernate.org/\"\u003eHibernate\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFrontend\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://www.thymeleaf.org/\"\u003eThymeleaf\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://html.com/\"\u003eHTML\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.w3.org/Style/CSS/Overview.en.html\"\u003eCSS\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://www.javascript.com/\"\u003eJavaScript\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDatabase\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://www.mysql.com/\"\u003eMySQL\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDeployment\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://aws.amazon.com/ec2/\"\u003eAWS EC2\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003c!-- Features --\u003e\n### :dart: Features\n\n- **Dynamic Rule Evaluation**: Evaluate user eligibility based on dynamically defined rules.\n  \n- **Rule Combination**: Combine existing rules into a single AST with OR/AND operations.\n  \n- **Error Handling**: Inform users if a rule is already combined with another.\n  \n- **User-Friendly Interface**: Easy navigation and interaction for rule management.\n\n\u003c!-- Env Variables --\u003e\n### :key: Environment Variables\n\nTo run this project, you will need to add the following environment variables to your .env file or application.properties:\n\n- `db_url`\n- `db_username`\n- `db_password`\n\n\u003c!-- Getting Started --\u003e\n## :toolbox: Getting Started\n\n\u003c!-- Prerequisites --\u003e\n### :bangbang: Prerequisites\n\n- Java 17\n- Spring Boot 3.2.5\n- MySQL\n- Maven\n\n\u003c!-- Installation --\u003e\n### :gear: Installation\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/Vineet1025/Rule-Engine-with-AST.git\n   cd Rule-Engine-with-AST\n   ```\n2. **Configure your application.properties for database connection**:\n   \n   ```bash\n   spring.datasource.url=${db_url} //Enter your database URL (jdbc:mysql://localhost:3306/rule_engine_db)\n   spring.datasource.username=${db_username} //Enter your database username\n   spring.datasource.password=${db_password} //Enter your database password\n   ```\n   \n3. **Run the application**:\n\n   ```bash\n   mvn spring-boot:run\n    ```\n   \n4. **Access the application in your browser at** http://localhost:8080/api/rule/index\n\n### :triangular_flag_on_post: Deployment\n\nThe application has been deployed on **AWS EC2**, allowing for easy access and management of rule evaluation.\n\n**Accessing the Deployed Application**\n- You can access the live application at: http://13.201.204.129:9000/api/rule/index\n\n\u003c!-- Usage --\u003e\n## :eyes: Usage\n1. **Create Rules**: Users can navigate to the \"Create Rule\" section to define new rules based on user attributes.\n\n2. **Combine Rules**: Select multiple existing rules from checkboxes to combine them, enhancing the logic of evaluations.\n\n3. **Evaluate Rules**: Test the defined rules against user data to check for eligibility or compliance.\n\n\u003c!-- Contributing --\u003e\n## :wave: Contributing\n  \u003cimg src=\"https://contrib.rocks/image?repo=Louis3797/awesome-readme-template\" /\u003e\n\nContributions are welcome! Please feel free to submit issues or pull requests.\n\n\u003c!-- License --\u003e\n## :warning: License\n\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/Vineet1025/Rule-Engine-with-AST/blob/master/LICENSE.md) file for details.\n\n\u003c!-- Contact --\u003e\n## :handshake: Contact\n\nVineet Jain - [LinkedIn](https://www.linkedin.com/in/vineet-jain1025/) - jvineet1025@gmail.com\n\nProject Link: [https://github.com/Vineet1025/Weather-App](https://github.com/Vineet1025/Weather-App)\n\n\u003c!-- Acknowledgments --\u003e\n## :gem: Acknowledgements\n\n- Spring Boot for providing an efficient backend framework.\n- MySQL for data management.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvineet1025%2Frule-engine-with-ast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvineet1025%2Frule-engine-with-ast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvineet1025%2Frule-engine-with-ast/lists"}