Concerning an easy way to define entity and additional custom logic (CRUD) in module, basically three options are available, out of which the first one cannot be exactly comprehended as an option exactly:
1. If you are good at PHP coding, it is worthy of creating an entity type by dint of the admin interface, and create a new node.html. twig template file, however this lacks the competence to carry out custom PHP logic and deliver the information to twig.
2. You can create a content type in a component and define the fields by dint of the admin. If you are able to read and analyze it the proper way, this can be carried out via drupal generate: entity:content with the Drupal Console.
3. You can create a module in which you can define the content type and hard-code all the fields. This in general is less flexible but is perhaps a more powerful option: in case something out of the ordinary happens with the database, there is no need to recreate the structure.
Both option 2 and option 3 seem feasible. Considering the options, a custom template can readily be created in the module sooner or later.
For more information on learning the east way to define entity and additional custom logic (CRUD), please visit the website www.shiftsapp.com