"Their efficiency, kindness, and punctuality were impressive. They delivered excellent solutions."
Cocoliche is a renowned brand from La Plata, Argentina, that sell quality second-hand clothes. They can be found in several branches in both La Plata and Buenos Aires, Argentina.
Brenda and Constanza, founders of the brand, contacted us because they wanted to improve the performance of their administration platform and to add a long awaited feature: Inventory Control.
After getting the code and carefully inspecting it we found several things that needed to be taken care of. The first one we noticed was the lack of updates through the years, making this old Ruby on Rails application obsolete. Both the Ruby interpreter and Ruby on Rails were off by a couple of years (a couple meaning between 5 and 6 years). The second thing was the infrastructure. The application was deployed to a VPS (Virtual Private Server) and had in it both the production environment, the staging environment and the database server. And the third thing we found was a lot of technical debt.
The solution consisted in 3 parts. The first one being updating Ruby and Ruby on Rails so we could take care of the infrastructure part. We advised moving both the production and staging environments to Heroku as it's easier to maintain than the current setup but also safer and more cost-efficient.
The second part of the solution consisted in improving the overall performance of the application. A lot of technical debt was found that contributed to the poor performance of certain key areas of the application. These key areas are of daily use and became a pain to use for Cocoliche's employees.
Lastly, the long awaited feature: Inventory Control. Cocoliche sells unique garments, there aren't two of the same kind and they frequently move between stores, most of them exposed to the public. Keeping track of each garment manually was a tedious and time-consuming process. The idea was to use a barcode reader and a tagging system to automatically account for all the items in a store.
After 2 months of hard work, the Ruby on Rails application was upgraded from version 5.0 to version 7.0, and along with it the Ruby interpreter from version 2.3 to 3.1. Two separate production and staging environments were deployed to Heroku, and as a byproduct of these, we migrated the old MySQL database the application was running to a newer PostgreSQL database.
The performance improved greatly: the application had some technical debt that made some pages load in over 30 seconds. By fixing this technical debt, we took these pages to load in less than 500ms.
An Inventory Control module was built. It allows printing product codes to barcodes and scanning them in order to make sales and perform searches. Also, it allows to control all the clothes in every branch's stock and deposit, to locate them individually and see their history. This reduced the amount of work each store needed to do every single day before closing from hours to minutes.