I was looking at the way Modules and DocTypes are organized to get an understanding of ERPNext from a system design point of view. I could not find any defined structure in the official documentation, so I referred the database to create a map. Sharing the same below for everyone’s use.
Frappe Framework: v14.4.0 (version-14)
ERPNext: v14.0.1 (version-14)
Frappe HR: v0.0.1 (develop)
Ecommerce Integrations: v1.11.0 (main)
Payments: v0.0.1 (develop)
The above apps are necessary to have a full fledged ERP system in place. (Since v14, the HRMS app was removed from the main ERPNext app, so I have installed it separately along with the Ecommerce Integrations and Payments app).
By default when you install ERPNext v14 (plus HRMS, Ecom apps), you get the following;
The move to separate out apps and maintain them separately is a great one and it will definitely allow greater extensibility of ERPNext in the future.
That being said, the current structure can create some confusion with modules like;
- Payments and Payment Gateways
- Ecommerce Integrations and Shopify/Unicommerce
- Integrations and ERPNext Integrations
The organization structure can be further optimized by clubbing similar Modules together into a single one that will help to lower the overall footprint.
There are also other system modules like automation, maintenance, utilities, communication, telephony, bulk transaction, etc. that can be clubbed together. I understand that this will have effect on the user roles and permissions config but overall I think it’s better to have lesser number of clearly defined modules to have more control over the system.
Let me know what do you guys think.