This application was built by our team for a client to manage their operations.
Our client's goal was to measure and review employee performance and output a dollar reward amount earned for monthly, quarterly and yearly periods. The system had requirements such as administrative control and a permission model.
Exploring the Requirements
Access control is implemented with the system to authorize the web-app on a per-role basis. In many cases, a tiered approach like this may confuse the administrators of the system, although in our case the client was adept with administering such systems so it fit the bill nicely.
In this scenario, employees were assigned roles and the roles served to provide general access restrictions across the application. When modeling employees, tighter control was introduced to meet the needs of any single specific resource in the project. Doing so allows admins to restrict access to viewing and editing information, application-wide.
Often times such a system may not be necessary and control might be simplified to two or three levels of administration. In this instance, the goal was to maintain the ability to add roles and modify permissions accordingly and to keep in mind future expansion of the site.
Compute, Compute, Compute
Our team worked with the clients to learn what key indicators the employees were being measured on and how their performance affected revenue and costs. There were lots of reports to be built with the data, so we started building the math functions we would need with a combination of Angular 2 for transient data, which kept the UI almost entirely hot, and logic controllers for more steady state data (past year comparisons) in ruby and PostgreSQL.
One of the client's biggest keys to success has been consistently reporting on the things that matter, and we wanted to give them a system that strengthened their spreadsheet calculators into a powerhouse reporting tool. The client boasts an innovative system to fairly weight and calculates employee performance and arrive at a dollar amount for incentive payouts. If you are a medical practice owner and wish to take your practice to the next level, let's get you in touch with them.
Testing and Refining
We vigorously tested every component, formula, and edge case to maintain a nearly bug-free application. Over two week periods, iterations would be made to the UI and UX flow to find the best design.
Our takeaways from learning the company's operations were that it took a lot longer and more engineering time than we had originally predicted. But, in the end, we built a great looking UI that fit their specific needs and is adaptive to the touch.
After the reports were built and outlined to the customer's liking, we worked with them to extract data out of their spreadsheets. This had benefits to the client like not having to train employees on a new system and the consistency of 4-year tested data.
Continue reading about the migration process.