Need directions for app organization

How would you organize your environment in ionic/angular for the following case (fictional scenario)?

Suppose we want to build a library of applications (sub-apps).

  • Library Automation
  • Human Resources
  • Account Management
  • Base modules (user management etc)

And you want to build real applications for companies X, Y, Z

CompanyXApp

  • Info
  • Library
  • HR
  • Department-A
    – Info
    – Department Library

CompanyYApp

  • Info
  • Library
  • Accounting
  • Department-B
    – Info
    – Department Library

Here

  • You will develop e.g. the Library module on its own
  • When you build/release updates to Company X, Y new Library Module version will be applied
  • You may have multiple Library modules in an application
  • There can be minor changes in Libraries of different companies etc.

Can I think these as submodules in GIT? If so how can I incorporate this in Ionic? Any possible issues?

I see that in Ionic can be organized for multiple apps, should I use this feature?

Can Company Library and Department Library co-exist, how can one incorporate those minor changes I mentioned? With “extends” or similar?

How would you organize the modules? Flat or hierarchical?

As such an environment would have a long life expectancy, would it be stable for (say) 5-6 years without complete overhaul?

Thanks in advance…

Hi

Not out of extensive experience, but there a few things here related to Angular and non-Angular.

There is also the option to create your own npm packages out of components. Using local npm components. And distribute amongst local projects.

As to git, I guess it is very much dependent on the setup of your developer workflow over the various projects, level of segregation and any automation of CI/CD you have/want for your projects

On Angular.io there is a guide on best practices organising files and folders. https://angular.io/guide/styleguide

Hopefully others can comment from practice

1 Like

Have you looked into NX?

1 Like

Thank you both, I’ll look into them.

1 Like