Correct way for customizing erpnext?

which is the right way to create new doctype inside erpnext ?.Creating doctype from doctype module in setup menu of erpnext or creating new app ?

Now i am using customize form to update existing doctype and Doctype module in setup menu to create a new doctype in erpnext.

Should i create new app for adding new doctype inside erpnext ?

Hello,

Custom Doctypes are fine. May I know what other customization do on that Custom Doctype? Does it also involve server side scripts?

It involves server side script

@nabinhait can you please suggest?

If you needed server side script, you should always create your doctype under a separate app. Basically idea is you should not change any code inside the erpnext repository. All the additional codes will be part of your custom app. In this way, you don’t have to think to resolve any merge conflict while doing the upgrade.

If I need to add custom code in attendance means how can I do that in seperate app

If you need only custom js code, you can add the code in Custom Script record from inside the app.

But if you want to customize server side code for attendance you should write that code in your custom app. And you can call those code via hooks.

Check the following links, to learn about hooks:

  1. Session 7: Connecting Using Hooks - YouTube
  2. https://frappe.github.io/frappe/user/en/guides/basics/hooks
  3. Adding hooks from another app