Enterprise portal for an engineering company
Our client is a manufacturing solutions provider with over 260,000 employees across 100 locations in 30 countries.
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.
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.
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.
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.