To ensure convenient import, management, and export of products for energy suppliers, we’ve developed a software component for the larger platform that also deals with setting prices for energy products depending on a consumer, their location, energy consumed, and a supplier.
for the unlimited number of tenants
number of suppliers with private databases
Our task was to create multitenancy environment for a catalog and price list for the energy holding based in the US. This system helps suppliers import and export energy products between the US states and cities, set prices for energy tariffs and ordinary shop products. There are both fixed prices per item for traditional products and prices defined depending on the location, consumer, energy consumed, and supplier. Also, when customers order an energy product, they are offered to get hardware.
The project is a part of the larger system with the microservice architecture, that’s why we needed to provide seamless access to this component for other parts of the system. Our task was also to make a SaaS platform for managing energy products and prices by a supplier. Since there is more than just one energy product supplier, this system required the implementation of multitenancy with an individual database per supplier to ensure that their data is isolated from the reach of other users. Another task was to set the system of user roles and permissions for administrators and clients.
The time to develop this component was six months. We managed to build a multitenant structure by implementing the possibility to make the unlimited number of copies of the component that are identical by structure and functionality but different by its content to create an isolated database for each supplier. We also had to implement the system of user roles and permissions. Thus, the data varies depending on the role of a user because for each role there are different permissions such as overviewing, adding, editing, deleting, etc. Since this app is a part of a bigger system, we used MVC and REST API to allow other applications to access products by the set criteria, and get the data out of our system.
The client was careful about disclosing details on their idea, that’s why our team wasn’t provided with full information about the purpose and functionality span of the whole system. Even though it took us longer to develop the project, we understood why it was important for our client to keep confidentiality. Considering the amounts of information we were given, we focused on delivering the result that would be best for the client. Throughout the development, we were making improvements to what we had previously implemented to make sure that all components of the system can run smoothly, and according to the new information disclosed by the client.
Our team has created functionality for the platform that allows clients to scale business, manage the efficiency of each particular segment, and grow their profit. To make this functionality accessible for other parts of the bigger system, we used a REST API. Logging and permissions systems for energy products, hardware, prices, and bonuses management were added to the platform. We have also integrated the systems of user roles and tenant management with isolated databases.