Enterprise CRM system

This CRM system includes web and mobile applications designed to help customers manage enterprise resources such as employees, equipment, documents, and a few additional categories. The applications have powerful access control capabilities and provide a basic view of resource usage statistics. The system also facilitates management of internal processes and valuation of individual assets.

Project background

Customer Relationship Management Software (CRM) refers to technologies that companies use to manage and analyze customer interactions and data throughout the customer lifecycle. Modern CRM software dates back to the mid-’80s when direct marketing evolved into database marketing. 

But the CRM software hasn’t always been the robust and stand-alone application that so many businesses rely on today. Over the past decades, it has evolved out of a variety of other business programs starting from Database Marketing and Call Centers software to today’s Social and Mobile CRM software with a high automation level. 

Our client needed a digital solution to replace the administratively heavy quality management system with a user-friendly and clear alternative, and a digital help engine for daily compliance with national and international ISO standards. 

  • Duration: May 2020 - Ongoing
  • Location: Denmark
  • Industry: Software development
  • Services:
  • Web development, Mobile app development, Software testing

Business needs

Our client’s end users – companies, and startups – wanted a simple management system for daily use. They asked for a digital solution that could combine the possibility of replacing the administratively heavy quality management system with a user-friendly and clear alternative and a digital help engine for daily compliance with national and international ISO standards. So the main business needs were to: 

– Improve business relationships with the help of a system that is continuously adapted to customers’ wishes and needs; 

– Assist in customer retention and allow opting out the waste of time and stress connected with lost documents, time-consuming manual reminders for inspections and assessments, and missed deadlines;  

– Drive management/communication with users/clients. 

Product features

  1. Tool management. A user can keep track of their equipment and inspect it when needed. They can also attach instructions, data sheets, warranty certificates, or other documentation
  2. Document management. With this solution, users will always have all the relevant documents at their fingertips and register docs directly from the application.
  3. Task and event management. A user can get an overview of registered updates or improvement opportunities – or create new incidents, suggestions, or tasks directly from the app
  4. Skill management. The employee module of this CRM system enables users to access all courses and training certificates. At the same time, users get an overview of their skills and authorizations

Solution

This digital management system is built as a Spring Boot web application. We also built two mobile apps: the iOS app is Swift-based with MVP architecture, and the Android app in Kotlin uses the MVP pattern. 

For the web version, we used the following: 

– PostgreSQL as a database and Hibernate with Spring data to access the database; 

– Amazon S3 as a static file store, Flyway as a database migration tool, and QueryDSL as a query language; 

– Maven build tool; 

– The front end is developed with React. 

For iOS app development, we used the following:   

– Keychain to store passwords; user settings are in UserDefaults, and no existing local database; 

– The GoogleMaps and GooglePlaces libraries to work with the maps;  

– Additional libraries: Image Cropper (avatar processing), FSCalendar (custom calendar), Kingfisher (asynchronous image loading); 

– App Store Connect and TestFlight to share builds; 

We also made a Custom UI without using libraries from native elements. 

For Android app development, we used the following:  

– Coroutines for asynchronous code execution (backend requests) and Glide to load images asynchronously; 

– Google Maps libraries to work with maps; 

– FireBase Crashlytics for crash reporting; 

– SharedPreferences to store user data; 

– Koin for dependency injection;  

– A Navigation Component to build navigation between screens. 

Our technology stack

  • ReactJS
  • Spring Boot
  • PostgreSQL
  • Amazon S3
  • Flyway
  • QueryDSL
  • Maven
  • Kotlin
  • Kotlin coroutines
  • Koin
  • Retrofit
  • Crashlytics
  • Android navigation component

Client values

  1. We created a stable CRM system version improving the initial solution
  2. We created custom mobile apps for Android and iOS users
  3. We created custom mobile apps for Android and iOS users
  4. The project is ongoing, so there is room for more improvements according to the client’s business needs

Employee testimonial

Testimonial image
Dmytro Shumov Java Developer

I'm working on a CRM system project that is extremely important for building flexible and efficient management within companies. Our development team is small but efficient thanks to properly configured processes. The project uses popular technologies that keep you from getting bored and allows you to grow as a specialist. Communication with the customer will enable you to participate in discussing new features and bring your ideas into planning and implementation. What I like the most is having the opportunity to influence the implementation or improve the finished feature solution to improve the quality of the project.

Let’s bring your idea to
life together!

    Successfully applied!