Back to Case Studies

CASE STUDY
Ubrania do oddania: A Portal Giving Things a Second Life!
company logo

Client

Ubrania do Oddania

Industry

Fundraising

Product

Web app

Date

August 2022

Skills

Ruby on Rails

JavaScript

CoffeeScript

Optimization

Local Caddie: how it works
8x
Less Ram Usage
700%
Hosting Cost Decreased
3x
Quicker Response Time
text image
About Client
Ubrania Do Oddania is an innovative NSG project that is changing the textile market, promoting the idea of circularity and second life. Founded in 2018 by Zofia Zochniak and Tomasz Bocian, the project started as a fundraising platform, currently being developed in many directions.
At the heart of the project lies the website www.ubraniadooddania.pl where users can donate clothing and accessories to support the charities of their choice. So far, the project has donated over a million PLN to NGOs and has gained the trust of over 40,000 users, carrying out over 600 campaigns.
Clients Problem
The application was developed and maintained by a company that did not meet deadlines. The pace of introducing new changes without properly integrating them with existing functionalities led to the emergence of new bugs. Additionally, the programming tools and techniques used in the application were becoming outdated, making it increasingly difficult and expensive to maintain and develop further. The client, concerned about these problems and convinced that the chosen technology may be the cause, decided to hire our company to support the maintenance of this application. He also planned to completely rewrite it in a different programming language: Java.
Challenges for 2N
Initial code analysis revealed the difficulties we faced:
  • Lack of application documentation
  • Insufficient code coverage with automated tests
  • Lack of monitoring and data on website traffic and application resource usage
What we did

Test Completion

We have completed the missing tests, starting with the most business-critical parts of the code, and we are continuing to cover the application with them.

Modern Infrastructure Architecture

We have updated the application's infrastructure architecture by introducing modern and efficient solutions, such as Dockerization, thereby reducing the deployment time of new application versions.

Libraries and Language Update

We have updated the used libraries, including language version, to ensure the security of the application.

Technical service and repair of hidden problems

We maintain the system on an ongoing basis and fix problems that were not initially identified by the client, ensuring the stability and reliability of the application.

Implementation of Monitoring Tools

By adding monitoring tools (New Relic and Sentry), we have pinpointed performance bottlenecks and optimized critical code sections. This resulted in a significant performance boost and a staggering 8x reduction in RAM consumption.

Transparent Communication with the Customer

We have introduced an effective communication system with the client, which increased the transparency of work progress, prioritization and reduced communication errors.

text image
Outcome

After the changes we introduced, the application started to work faster and consume fewer resources, which contributed to reducing the costs associated with its maintenance. Customers no longer experience issues with the application's performance or only encounter occasional defects that were previously undetected. The security and manageability of the application have significantly improved.

Thanks to effective cooperation with our team, the client decided against rewriting the application in another technology, realizing that it was not the choice of technology that was inadequate, but rather the previous software implementation process. This allowed the client to save several hundred thousand PLN, which would have been the cost of rewriting the application in a different language.

What we accomplished:
  • Reducing the number of errors experienced by users.
  • Improving the security and maintainability of the application.
  • More efficient and predictable collaboration with the developer.
  • Financial savings for the client through a change in project approach.