THE CHALLENGE
Yapiko staff are assigned to different projects from different clients, who expect them to allocate the hours they spend on their projects within their internal Time Control Platforms. In turn, Yapiko, due to state regulation and for internal control, needs to record in its own Time Control System the hours performed by its staff and needs to verify that they coincide with those declared on its clients to ensure correct billing to them.
THE SOLUTION
In 2017 Yapiko decided to develop a web application to integrate all the tools of the different clients that were involved in the process of sending the Working Hours from their own Time Tracking System (Zoho People) to other Time Tracking Systems used by their clients (currently My Intervals and Jira).
Our Backend team defined all the operations and exposing them as services in coordination with our Web team that developed the Chronos Frontend to provide all the functionality to the users in the right way, thanks to which it was achieved:
- Staff Time Spent Reduction in the registration of hours, as it has to be entered only once and then sent to the rest of the target systems (MyIntervals, Jira) configured by each user from the application.
- Team Frustration Reduction by only having to log their hours on one platform.
- Error Prevention and Consistency Verification between the systems involved.
- Easier Productivity Metrics.
- Managers Workload Reduction in the follow-up and control of the correct time information in the different systems involved.
Finally, a configurable automation module was included so that the tool is able to send the timesheets to clients automatically, saving the user from having to access the tool and manually send the timesheets to the systems they have to.
WEB SOLUTION
Our Frontend Team was in charge of developing the web to give functionality to the tool through the operations (Chronos API) that were defined and developed by our Backend Team (see Chronos Backend Development Project).
The application has user profiles and administrator profiles.
Some of the features implemented for the user profile were:
- Set up access credentials to the Client Platforms the user will be working for.
- Send worked hours from the Source Platform (Employee’s Time Tracking Platform) to the Client Platforms (Target Platforms) that the employee has configured.
- Chronos password change.
- Activate the Auto-Submit so that the tool will send the timesheets to the clients automatically, saving the user from having to access the tool to send the timesheets to the required systems.
Some of the features implemented for the admin profile (in addition to user profile features) were:
- Synchronize Projects and Tasks of the Company’s Time Tracking tool with the Projects and Tasks of your Customers’ platforms.
- Chronos User Administration
- User Hours Submit (due to e.g. employees who have forgotten to send their worked hours to their assigned customers).
TECHNOLOGICAL SOLUTION
The technology selected for the application was React Native, developed by Facebook.
In addition, a set of auxiliary libraries was available during development. The latest versions of the JS standard (ES6, 7, 8…), Redux-type architecture, testing and code quality tools were used to provide stability and robustness during the application development.
The application was deployed in the Cloud using AWS (Amazon Web Services).
BACKEND & INTEGRATION SOLUTION
Our Backend team was in charge of analysing, designing and defining all the operations to expose them as services.
Among the main operations offered:
- Authentication
- User Credentials Configuration to the Time Tracking Systems of their Clients
- Users TimeSheets submit from their company’s system to the Time Control Systems of the clients they work for.
- Projects and Tasks Synchronization of Client Systems to the user company Time Tracking system
Chronos could be a SaaS solution for other companies to benefit from all the advantages it offers
Integrations
A very important project aspect was creating a software that facilitates the integration of connectors for different Time Tracking platforms.
Subsequently, “Integration Connectors” were developed to operate on recognised platforms (Jira, Zoho, MyIntervals) by means of the respective APIs available to them and “translating the responses” to the Chronos ecosystem.
We are currently developing new connectors to integrate new Customers with different Time Control Platforms.
A highlight is the broker that was developed to orchestrate all communication to external APIs capable of managing the diversity of limits defined by each of them (total call limit, limit per unit of time, etc.) and of managing call queues to ensure correct operation with the highest possible performance, avoiding blockages as well.
TECHNOLOGICAL SOLUTION
A REST API-based architecture was used with the OpenAPI 3.0 specification as a framework, so backend and frontend developers worked in parallel to reduce delivery times once the service interfaces were defined.
The application was developed using Spring Boot framework and deployed in the Cloud using AWS (Amazon Web Service – EC2, RDS Postgresql, Cognito -).