Skip to content

usil/eventhos-web

Repository files navigation

eventhos-web

What is eventhos?

Eventhos is an open source platform that applies event-driven architecture principles to allow the user to orchestrate their system integrations using a simple user interface instead of complicated publisher and subscriber source codes in applications. You only need webhooks and rest APIs to integrate all your systems.

Full details in the wiki

How it works?

Basically you have to identify the producers (webhooks) and consumers (apis). Then using th UI you can make a contract between the incoming event produced by a webhook (source system) to the rest api in in the target system. So with this you will have a real time integration between the producer and consumer systems without the complexity of kafka or similars.

image

Here a sample of contract between producers and consumers

create-contract-2024-04-05_17.50.51.mp4

More uses cases and deep explanation here and here

Features

  • Register all systems (producers and consumers)
  • Create contracts between your systems
  • Oauth2 Security
  • Manual retry on error
  • Event Dashboard to see the received events and all the details (request/response)
  • Reply-To option
  • Json binding to match between the webhook json and target api json
  • Vanilla javascript to binding to match between the webhook json and target api json
  • Mail on error with the details
  • User Management

More details here

Dependencies

Here a minimalist High Level Diagram

To know more about each dependency check their git repositories.

Demo

In this repository you will find the code of the web artifact called eventhos-web. You will need the api to get all the eventhos platform ready to use or develop

To build and start this platform you need knowledge about nodejs, mysql, angular, etc. To get your own version in less than 3 minutes, follow this guide:

If you don't have errors, you will be able to see the home page at the http://localhost:2110

image

Technologies

  • Angular 13
  • Webpack 5

Requirement

  • Nodejs >=14

Environment variables

Following the third commandment of 12factor we use environment variables to handle the configurations

Variable Description Default Value
EVENTHOS_API_BASE_URL The eventhos api base url NULL

Variables are defined in src/settings.json

More details about configurations here.

Manual start (developers)

Export the required env variables or create a .env

npm install
npm run dev

By default the app runs in the 4200 port.

Manual start (production)

Export the required env variables or create a .env

npm install
npm run build
npm run start

By default the app runs in the 2110 port.

Also you can use docker following this guide

Usage

The main use case could be found here

A complete user guide is in the wiki

Security

The authentication and authorization are managed by the api. Check this to get the login credentials

Integration tests

If you startup the local demo you can run the integration and e2e tests.

We use docker, selenium and a mock api to test almost all the ui forms and rest api endpoints. Check this for more details:

How to Contribute

Check this https://github.com/usil/eventhos-api/wiki/Contributions

License

MIT

Contributors


Luis Huertas

JRichardsz

Diego Ramos