There are several small to medium agencies or companies in Spanish area which deals in consumer services business. Few instances of the services provided by these companies are: Swimming Pool Maintenances, Garden Lawn Cleaning, House maintenances, Plumber work, domestic helps (on hourly basis), cabs facility, travel assistances, luggage transportation and various other kinds of services. In all these services, consumer is directly involved to convey the needs of the service and direct the service the way it require.
On need of any kind of service, consumer directly calls one of these agency/company (which provides the relevant service) and that agency assign the person or team of people to fulfil the consumer’s service. The assigned person or team visit the service’ location, performs the job, takes the feedback from the client and submit the report to the agency. This is the complete job cycle to complete any consumer service, however there can be several other tasks can also be involved in between.
All these operations involved in providing consumer service were being managed manually where the assigned resource was creating the paper based report, filling up the paper-form, getting the customer feedback and then manually submitting the paper report to the agency. This kind of manual handing was not at all efficient and consuming lots of efforts in terms of resources time and engagement to complete one job. Also, it was not directly apparent or trustworthy way to know the resource location who is assigned to perform the job, what time the resource went to location and when the job was finished.
What was needed is a complete package of online and automated system which can override all these manual operations of consumer job handing and should function based on the user type.
Key Functional Areas:
- System with the features based on various user types and relevance
- Single system supporting diversified nature of businesses of the various agencies/companies and providing uniqueness with adjoining only those functionalities which are needed by the respective agency/company
- Automated Reporting Management with online form which also include consumer feedback
- Remote monitoring of resource’s location with the timings intervals
- Onsite report submission with the support of real time images, signatures and other details
- Customizable interface to support the modifications of the report forms as per need without any IT person intervention
- Interface at agency/company level to view all the reports submitted by the resources
- Email Notifications
- Functionality in the application to view the live locations of the resources working in the consumer location in the forms of maps
- Internationalization support
- Finding a way to manage various agencies/companies of very diversified natures of businesses and bringing all of them in one umbrella while keeping their uniqueness intact and not mixing up one agency/company requirement into another. For instance, ‘Organization A’ deals in services and ‘Organization B’ deals in construction. As the nature of these organizations are different so the application usages. ‘Organization A’ would need different functionalities and ‘Organization B’ would need different functionalities.
- Onsite report submission as it was not possible that the resource is always connected to internet and hence, in this case it was require that solution should be capable to handle this scenario
To comply with the diversified nature of various agencies/companies and to support distinguishable customize feature and functionalities, multi-tenancy design principle is used in this solution. According to multi-tenancy, each tenant (organization) will see the application in the way that it has been customized solely for its usage only. However, at the same time another tenant (organization) would see its application in its own way, customized based on its business nature.
Possible users of the application identified as :
- Resource, the worker who will be performing the job of consumer
- Admin, system owner (Equipnou SL) who will have the functionality to create and control the accounts of various agencies/companies
- Agency/Company coordinator, a user who will be managing overall operations on organization behalf, responsible to create end-customers, tasks, inspecting and managing reports, products etc.
After scrutinizing all the usages and through analysis, it was decided to have 2 kind of applications in the system: web and mobile. Mobile solution was chosen for the resource who performs the on-site job and most of the time works remotely so having the app running in the mobile can increase the ease of use by simply operating the app with the feature of filling the and submitting the report remotely. It also helps to send the current location of resource to the coordinator. For admin and coordinator, web solution with 2 separated interfaces was chosen who can manage the overall operations individually. Admin can create and control organizations while the coordinators can monitor the resources and manage their own organization respectively.
REST based architecture was implemented for Mobile App services. Java was chosen as the programming language for server backend which processes the requests coming from Android based mobile app. PHP based technology stack was chosen for implementing web interfaces with MySQL as a database server. For location tracking and remotely monitoring the resources location, Google Maps API was used.
There are 3 parts of this project:
- Implementation of Web based Interface with 2 separate interfaces for Admin and Coordinator
- Implementation of Android app
- Implementation of Web services based Server backend for Mobile App
Key Highlights of the Solution Implemented
- Multi-Tenancy Implementation - All organization specific customizations are implemented in the way so that it feels that every organization is using unique application developed for their usage only and most importantly, not a single conflict has every occurred between the usages of other organizations i.e. each account runs in isolation and does not share any data with others, each account has its own secure data store which can only be accessed by the intended organization. True multi-tenancy principle is applied in the system which allows complete flexibility and ease to define or modify the properties for the organizations anytime without any manual intervention. Changes applied for one organization does not impact others.
- Organization Management - Each organization assigns a coordinator working on the application and handling daily operations. Each organization has access to view/edit data only which are relevant to their organization and they cannot view/edit the data for any other organization, this allows to manage the transparency and data integrity. They can access only own set of reports created for them. Each organization will have workers who will be doing job work for organization’s consumers and reporting back to organization.
Account for each organization is setup by the administrator (Equipnou SL) with the required settings and customization as per the organization needs.
- hFCM (highly Flexible Configurable Maintainable) - The foundation of this solution is based on hFCM principle – highly Flexible Configurable Maintainable.
Flexible - The exquisiteness of the application is flexibility, configurability which allows it to modify or transform the features anytime with the ease of few user interface navigations. For instance, let’s take an instance of Products Management. Every organization provides different products which varies in nature. Products from different organizations will have varied fields which are uncommon from each other, the application can manage the schema to represent multiple products fields of various organizations.
Configurability - All the business fields for products, tasks, workers, clients are developed in the way that, there are so dynamic in manner that the basic property of these fields can be modified anytime without any impact on the functioning of the application. The basic properties as shown following, can be changed seamlessly by the administrator. There are more than 15 properties for every field which can be controlled dynamically.
- Field Name
- Field Description
- Field control type (text box, combo box, check box… etc.)
- UI Validations
- UI error messages
Maintainability - Maintaining the application or enhancing the features in the application are no more complicated process in this solution. The framework of the application is highly robust and capable to trace out the issues or problems intelligently and inform them via logs. Enterprise logging mechanism is in place which traces all the events occurring in the application in sophisticated and structured format that makes it easy to read by anyone.
- Application provides the means by having the way in the interface where all possible form fields of various functionalities like – products, tasks, resources, reports etc. are defined and the administrator of the application can chose from those fields while setting up the new account for the organization. A list of all possible fields appears on the screen during the setup of organization and admin can chose require field based on the organization business nature.
- Application has the provision to modify the form fields selection for all features from the organization’s account anytime with no developer intervention. Administrator has complete control to create/modify the configuration of organization’s account.
- Adding new field not present in UI - This is uniqueness of the application which allows direct embedding of new fields which are not present in the UI but can be added seamlessly without any code level changes or developer help. New field can be added from separate administrator panel application by just following few UI navigations, and new field will immediately appear in application. So, for instance, if requirement is to add ‘Product date’ which is not present in the application, it will just require to follow few UI navigations to add it.
- Reporting is one of the core business objective of the application. The design strategy of the reporting mechanism allows to have various formats of reporting based on the organization’s business nature.
The Mobile App of this solution has the report form which is used by the resource of the organization to submit the work report from the mobile. The structure of this report form is completely flexible and configurable which can be modified anytime without developer’s intervention, it is controlled by the administrator of the application.
Reporting Structure - The structure of the reports are defined by the administrator at the organization level during the time of account creation or can be defined later also. This structure defines the fields declarations that appears on mobile app. There is a interface which presents all the possible reporting fields based on the organization’s business nature. Administrator can chose from these fields while defining reporting structure for the mobile app, the fields declared in this setup are appear exactly in the mobile app.
There is also a provision the reporting structure once defined, can be updated anytime with the new fields without any developer help and they will be reflected in the mobile app without any further action. This is the powerfulness of the solution, that the control of mobile solution is in admin’s hand and can update it whenever needed.
Reporting Template - When the resource submits the report from mobile app, the report is transformed in the PDF file format, consolidating the report structure in the PDF tabular form with the organization’s custom settings. This format of PDF file is based on the template as per the organization’s business needs. Multiple templates are provided in the system and administrator can chose from one of them to associate with the organization’s account. This template is then used as a foundation to create the PDF file for the reports. The template linked with the organization account can be replaced by any other template anytime.
- Syncher Service – Syncher is the feature which keeps the mobile app in sync with the server and keeps the data updated when requires. This is the important feature which always keeps the mobile in sync with the server and the server is always aware of the app functioning’s.
If there are any updates in the products, like, new product added/removed/modified or even the product fields are updated by the administrator they will be reflected on the mobile app via this service. There is no external action required to update the mobile app in order to maintain latest changes, it will automatically be taken care by the solution.
Similarly, updates in the reporting structure like report fields added/removed/updated are synched with the mobile app via this service. Once the reporting structure is change on the web front there is no action needed from administrator side, it will be automatically updated on the mobile app. Worker on the mobile app will always see the updated reporting structure.
- Another powerful feature is streaming the data in bytes. All the dynamic data in the mobile app which is updated via Syncher service, or images uploaded in the report form, or signatures etc. are stored in bytes form which is uniform for all. Saving the data in bytes form reduces the storage requirement in mobile and hence makes the app lightweight. It also saves the bandwidth requirements while communicating with the server. Streaming the data in bytes also adds the flexibility from maintenance perspective which allows to let the data convert into any format based on the nature like image, file, binary, text etc. The nature of the format can be changed any time and it would not require any changes in mobile app.
- Non-Connectivity of Mobile App - The scenarios when there is the possibility that mobile app is not connected to the internet and unable to communicate with the server is handled in this solution. This is taken care by the Syncher service and the Reporting service. These services runs based on the configurable time intervals and checks if the phone is connected, when the connectivity is found, they sync up with server for latest changes.
In case of report submission, when the connectivity is not available, the report is saved as a draft in the mobile app and sent later when the connectivity is found. Worker of the mobile app gets notified when the app dispatches the report.
- OTA (One Time Authentication) - As this solution supports multiple organizations and these organizations can have many workers, and in turn, these workers will have mobile apps installed in their mobiles. Now, the questions comes up how to identify which worker is associated to which organization and how to identify the authentication of the worker, it may possible that worker is no longer exist with the organization or it’s a unauthorized user.
The solution for this problem is implemented in the form of ‘One Time Authentication’. OTA works at the time when the worker launches the mobile app first time, it asks user to enter the organization name to which it belongs and the worker name. Once these information is provided, app communicates with the server to authenticate this data. Server, in turn check the authenticity of the data and returns the authentication results. If the authentications fails, then the worker will not allow to use the mobile app.
If server passes the authentication details, then it will create a unique token key for that worker and will return that to the mobile app. On receiving the token key from server, app will allow the access and will store the token key internally. This token key will be then used for all ongoing communications with the server which helps to know the identification of the mobile app requests. The token key is unique in the nature and belongs to only single app.
- Search functionality – Data can be searched and filtered based on the worker name, consumer name, task status. Various Search Criteria’s to filter out the report data, View the results in structured data table, Export the filter results in CSV or XLS format. Calculating total no. of hours spent by the worker for the client.
- Dashboards – Web interface also includes a dashboard which highlights the summary of the organization activities in various sections. Its shows the Tasks status and reports submitted in the calendar year in graphical view in the form of graphs.
Benefit Impact On Business
This new system bring the finest results for the business and over exceeded the expectations, in just one quarter the no. of clients (agencies/companies) increased by 8 times. The reporting functionality developed in this system was highly recognized, the automated mechanism of report submission saved the vast amount of manual efforts by 300% and hence increasing the revenue by an average of 38% for all organizations which were associated with this system.
Online and instant submission of reports from the mobile app increased the rapidness in the process of servicing the consumers and they can also know their consumer’s feedback spontaneously. This allows the organizations to serve more consumers by the same strength of resources in minimal time.
- Clients increased by 8 times
- Revenue increased by 38%
Prime Focus Points
- Service Oriented Architecture
- Bringing multiple organizations of diversified business’s nature under one umbrella and operating them uniformly without hindering other organization’s business nature
- Handling non availability of online connectivity in mobile app
- Unique feature to allow run time customization of any form field (add/modify/delete) in the UI without any code level change
- Remote monitoring of the resources
- Highly customizable Reporting structure that allows to have varied formats of reporting based on the organization’s business nature.
- Reporting form in the mobile app supports camera shots, photos, location, consumer feedback and signature. This report with all its components can be uploaded at once on server.
- All control elements (text box, combo box etc.) in reporting form in mobile app is based on the set of syntactical format which is configured from the web interface and rendered on run time. None of the control elements being rendered in the mobile app has any code written for it, the code for them is created dynamically on run time.
- Interactive and formatted report generation as per the respective organization business nature
- Internationalization of the application in Español and English
- Mobile App development based on native OS implementation. This app is able to download and installed inherently in the mobile OS system. The front-end design of mobile is based on UX design