Help me understand custom doctype and bench update


I’m fairly new to ERPNext, and wanted to customize ERPNext to my own needs, which revolve heavily around Project Management

What is the better way, create a new app and duplicate the Projects module, or make changes to core doctype? with duplicating, my issue would be on how hard it is to name the doctypes.

With Core DocType changes, my changes would be gone with bench update/migrate right?

Would love to hear your thoughts.

You should list the changes you want to make. People here can help you decide what can be done without customization and what will need them

bench update pulls new code from Github into frappe and erpnext, and migrate schema changes to DB and more. They won’t be gone exactly, but they’ll definitely create conflicts when trying to update. Hence it is recommended to not commit any code in ERPNext/Frappe repositories or to add/remove fields in default doctypes via Edit Doctype. Also, don’t manipulate the database manually.

The best possible route for customization is the Custom App. You can add more functionality to the existing default doctypes but you cannot override the default code.

Thanks for your reply. Let me describe my needs so you or others will get a better idea of what I’m trying to achieve:

My company works with a single Customer, but working on multiple projects per year. Each project will have exactly the same tasks (there will be some minor details added for maybe 2 projects out of 20)

Flow: Note to Proceed —> Team A activities —> Reports —> Approval —> Team B Activities —> Reports —> Approval —> Additional Work if needed —> Project Completion

  • Project: Fields required will be Project ID, Project Name, Address, City, GPS Coordinate, PO Type, PO Date to name a few. The creator will be “Project Admin”.
  • Tasks: Tasks are under 2 fixed categories (or teams), and each team has a fixed set of tasks. If possible, I’d like to have all the tasks loaded automatically whenever I create new projects.
  • Project Updates: Project Updates will have all tasks listed as above. Each “Project Team User” will need to open individual tasks and update it accordingly (some will require uploading photo or pdf evidence)
  • I will need to generate reports based on the Project Doctype, with fixed report format provided by the customer

Based on your reply, and also after doing some reading, I think I will try with the Custom App. I’ll just have to spare some time to learn about hooks.

Thanks for taking the time!

@gueriza can you tell me how do i go about making edits to core doc types? do you have some reference to docs?

I saw the hooks part and creating new doc types.
But how do I go about modifying / extending an existing doc type in lets say the HR module.