Integrated Process Automation Management System 🤖
Manage automated, complex, large scale, time heavy, LLM driven, integrated processes, in a simple no code workflow environment. 🚀
Enjoy scalable, repeatable, world-class quality, generative AI powered document creation and integrated general purpose task execution. 📝
Create project outlines, fully working codebases, complete text documents in long form, one-time scripts, refactored files and more. 💻
High degree of LTS compatibility with efficient modular codebase architecture allows for self-improving systems operation. 🛠️
- Installation 💾
- Usage 🛠️
- Features 🌈
- Modules and Services 🧩
- Contributing 🤝
- License 📝
-
Clone the repository:
git clone https://github.com/yourusername/bengine.git -
Navigate to the project directory:
cd bengine -
Install dependencies:
npm install -
Copy
.env.exampleto.envand update with real values:cp .env.example .env
-
Build the Docker image:
docker build -t bengine . -
Run Docker Compose:
docker-compose up
-
Ensure MongoDB is running.
-
Navigate to
/maindirectory:cd main -
Run the application:
node app.js
-
Run services using Docker Compose in
/services:docker-compose -f /services/docker-compose.yml up -
Or run individual services in
/services.
Blocks are the fundamental units of work in Bengine. Designed to be repeatable and reusable, they come with space for variables loaded via Data. Templates serve as blueprints for Blocks, specifying the service endpoint for interaction.
- 🔄 Repeatable and reusable Blocks
- 🎯 Templates specify service endpoints
Jobs are the actionable units in Bengine. They come with various statuses like open, pending, blocked, and completed. Each job is associated with a Flow ID and interacts with models such as Block, Data, and Output.
- 📊 Various statuses (open, pending, blocked, completed)
- 🤝 Associated with a Flow ID
Projects manage the execution of Flows. When active, Jobs are created from the defined Flows, Blocks, and Data. The Flows dictate the sequence of Jobs sent to the service API, and Outputs and statuses are received back. A project-level output is saved upon completion of all Flows.
- 🗂️ Manage execution of Flows
- 📈 Save project-level Outputs
Flows are sequences of Blocks with basic process flow logic. They define the Data required for Blocks. When triggered, Blocks and Data are used to create Jobs. Each Flow culminates in an Output.
- 🌊 Collections of Blocks with process flow logic
- 📈 Culminate in an Output
Data is the specific information required for Blocks. Set at the project level, this data is collected via a service API and used to populate variables within a Block or Template.
- 📊 Specific information for Block completion
- 🌐 Collected via service API
Outputs are the result data from Jobs. Stored for later access, they can be used for analysis or further processing. Both Projects and Flows save specific Outputs.
- 📈 Result data from Jobs
- 🗂️ Saved at both the Project and Flow levels
Modules are located in /main/modules and consist of Node.js and Pug code. They extend the functionality of B Engine.
Services are located in /services and can be any API. They provide additional capabilities and can be integrated into the workflow.
We welcome contributions from the community. Please read our Contributing Guide for more information on how to get involved.
This project is licensed under the GNU General Public License v3. See the LICENSE file for details.
