joshua miller
joshua miller

Reputation: 1756

Suggestions to separate projects from product made in AngularJS

I am currently working on the frontend of one of our company's products, built in AngularJS.

Up until now the software was written specifically for one client, but now we have to make changes to accommodate change requests for a different client.

To do so we need to split the core functionality of the product and the changes each client needs. In other words we need to split the software into a main product and then each client has their own sub-project.

The main product will cover 95%+ of the functionality each client requires. The per client (project) changes will be fairly small overall.

Example:

The product has 5 different components. Client 1 needs a component added (in addition to the 5 mentioned) and the new component needs to be reflected in the menu. Client 2 needs the software to support RTL and also needs to make changes to one of the existing components.

How can I split up the existing codebase to, in essence create slightly different versions of the software for each client?

The catch is that the code for all clients has to be stored in the same GIT repository. The deployment process however can be on a per client basis.

Any suggestions on what I can do to make the split as painless and as maintainable as possible?

Upvotes: 2

Views: 33

Answers (1)

Roleg
Roleg

Reputation: 111

You can modularise these components and make them load via a setting file, therefore each client can have separate variations of functionality enabled.

Are these frontend clients going to talk with your company's core API or are you going to deploy those separately too? I mean if there's a core API you can authenticate requests on client basis and restrict/enable functionality easily. You could store these configurations on the database level in this case.

Upvotes: 2

Related Questions