What is the different of metasfresh project between metasfresh-webui-api/metasfresh-webui-frontend projects?

I am new to Metasfresh. There are many projects in metasfresh github repository. I knew metasfresh/metasfresh project is the one I need. But when I saw metasfresh/metasfresh-webui-api and metasfresh/metasfresh-webui-frontend projects, I am confused. Can anyone let me know the difference between them?

Metasfresh uses Facebook React framework for its web frontend, React is Single Page Application (SPA) technology, effectively Javascript that sits in browser. Classical web pages (HTML+CSS+PHP or Java facelets+Java EE+Spring) are generated on the server side (e.g. in Apache or in JBoss+Spring) that server side frameworks can read data directly from the database to populate the web pages that are sent to the browser. It is different with JavaScript SPA frameworks (like React) that sits in browser and generates/updates HTML+CSS while sitting in browser. Such JavaScript applications can not connect directly to the database (technically they can try, but it would be very bad practice due to the security and scalability concerns). That is why there is server side REST API application, effectively nonvisual web application, that reads data from the databases and that exposes these data to the JavaScript SPA application that sits in browser. Such REST API has well defined security/authorization mechanisms, so, browser application can access/modify data it has privileges to do.

webui-api is server side application for REST API, it sits in the server side. And webui-frontend application is React Javascript application that is loaded into broswer and sits into browser.

Hope, I understand it correctly. Alex

Thanks for reply. But that didn’t answer my question. I am a programmer so I knew the technology that metasfresh used. What I need to know is business detail of metasfresh/metasfresh-webui-frontend project, and what’s the different of metasfresh/metasfresh project?


here is a list of services that metasfresh consists of with links to their respective repositories:

Most Important ones are:
metasfresh-webui-frontend => Frontend
metasfresh/metasfresh-webui-api => Java Backend serving the Frontend
metasfresh/metasfresh => Java Backend for processing data like orders, invoices,etc.

Hope its clearer now.


Thanks, that achitecture picture means a lot.