title: What should be included in Core, Shared and Feature modules?
body: <p>I have read a lot of articles regarding this subject, but am still having trouble processing that matter. Sorry if it is a duplicate, regardless!</p>
  <p>So basically, I am building an Angular app from scratch, and I want to organize my code as per the best convention. I have a core module, that currently includes a generic data access singleton service, and an auth service that uses it. What I can't grasp is, when should I make a feature module, and when that functionality belongs to the core module.</p>
  <p><em>Core Module tree:</em></p>
  <p><a href="https://i.stack.imgur.com/Mu8sw.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Mu8sw.png" alt="enter image description here" /></a></p>
  <p>Auth, for example, sounds like app core, but in my case it would also include some declarations (components, etc.), and would probably need to import some UI atoms/molecules from a shared module. Does it deserve a feature module, imported directly in the root module? Should I let the core module export the auth module's declarations? Or should I separate the providers for auth (core module) and make another auth feature module (for the declarations)?</p>
  <p>Same goes for layout module, modal module, etc.</p>
  <p>Thanks!</p>