Back to case studies

CRM for service contractors

1 Project Manager
3 Back-end developers
5 Front-end developers
2 QA
1 Designer

2 years, ongoing

Backend: SpringBoot / Spring stack JPA / Hibernate 5, MySql, Amazon

Frontend: Angular 6, CKEditor 4, ChartJs

QA: Apache JMeter, MySQL
CRM for the Mechanical Service Contractors

SharkByte is a CRM that streamlines sales processes for mechanical service contractors. Our client, Perfectware Solutions, is a leading provider of service management and sales tracking software for Mechanical Service Industry. The company was seeking a team to develop a CRM with multi-tenant elements. It was important to the client to hire vendor with successful experience in the CRM building. Since Sombra had an apposite case developing multi-tenant software, the client chose us among other candidates.

Before a development process, we got acquainted with industry requirements and specifics to understand how Mechanical Service Industry works. During the development, the client collected feedbacks from contractors, which we implemented in SharkByte. Thereby, we succeeded in translating the real industry needs into the software.

Our goal

We pursued the goal to create the tool for simplifying and automating the selling process specifically for service contructors. The other crucial point was to maintain the integrity of the company's data within one own database and tuning the system to the needs of companies.


The outcome of the project is a robust CRM designed to guide contractors through the sales process. It has enhanced visibility over the activities of the sales team, supplying users with the most current tools and options. a mobile surveying, service contract and project estimating, proposal generation. The project contains tools like mobile surveying tool, project estimating, proposal generation, which streamline the sales process.


The most complex issue was to implement multitenancy architecture into the system. There should be a new database for every tenant (company) and the system should retrieve data from the database for a particular user after the login.

Also, we have some difficulties with building a custom editor for proposals. We have used CKeditor as the base platform, but it turned out to lack functionality. Thereby, we have to drill into the library code and optimize it for our needs.



The issue with multi-tenancy was resolved through Hibernate using its default implementation for this purpose. The structure for database behavior is the following:  a master database managed by JDBC template and a tenant database managed by Spring Data JPA. The Master database holds the main information about the tenant and user credentials. The tenant database contains info about the company, customers, users, opportunities, and other crucial entities.


CRM for service contractors

Top 3 features

The crucial factor for us was to deliver a custom solution that meets all the contractors' needs by mapping and optimizing complex processes. The client wanted the software to stand out among available options that were not fulfilling industry requirements. There were either add-ons to service management software or packages customizing other commercial CRMs. So, we created a software encompassing essential features:

  • 1. Customer and sales tracking
  • 2. Contract and project estimating
  • 3. Electronic proposal generation