Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jefersoneiji/decision-engine

No-code decision engine for non-coders. These rules after created can become an API ready for consumption. Made with ReactFlow + Flask
https://github.com/jefersoneiji/decision-engine

cicd git reactflow reactjs tailwindcss typescript

Last synced: 3 months ago
JSON representation

No-code decision engine for non-coders. These rules after created can become an API ready for consumption. Made with ReactFlow + Flask

Awesome Lists containing this project

README

        


No-code Decision Engine


for non-programmers

https://github.com/user-attachments/assets/c2b5353d-6dca-41dc-b0e3-8061d3cb4548

## Summary

This decision engine can generate one final decision based on the user's decision tree. Next, this policy can be stored and executed in the back-end.

## Prerequisites

For this project to run, make sure these software are installed:

- [python](https://www.python.org/downloads/)

- [nodejs](https://nodejs.org/en/download/current)

## Installing

To run locally:
1. Clone this repo
```cmd
[email protected]:jefersoneiji/decision-engine.git
```

2. Install dependencies in your machine
```cmd
yarn install
```

3. Start both the front and back-end
```cmd
yarn dev
```

## Testing

Execute the following command:
```cmd
yarn test
```
## Linting

```shell
yarn lint
```
## Apps

- [README](./frontend/README.md) | `Frontend`: Contains front-end logic for the policy editor
- [README](./backend/README.md) | `Backend`: Contains back-end logic for the CRUD operations in policies
- [README](./backend/README.md#policydb) | `PolicyDB`: Local database with sqlite and sqlalchemy
- [README](./backend/README.md#executionengine) | `ExecutionEngine`: Responsible for processing and outputing one decision after executing a policy

## Design Decisions
Turbo is used to reduce the number of steps required for executing commands such as spin up apps in dev mode.

### Back-End

- For the sake of speed and simplicity. SQLite was choosen as local database engine
- Folders contain file according to their purpose. For instance `routes` only contains API routes. This structure make files predictible
- As a way to provent bugs and enforce code styling `pytest` was added to the project

### Front-End

- Because of its reliability and simplicity `Axios` was chosen as `http-client`
- Most user feedback comes shows as `Toast` notifications from `react-toastify`
- As a way to provent bugs and enforce code styling `eslint` was added to the project
- An [AI assistant](./frontend/README.md) may be helpful in answering user's questions related to docs and help them through problem solving while create policies

Made by Jeferson Eiji ➡️ [Get in touch!](https://www.linkedin.com/in/jeferson-eiji/)