Web-Based Personal Styling

Social media
Ruby On Rails


The solution is a Web engine that selects accessories (shoes, bags, etc.) for users matching their preferences in style profiles. The new personal selection for each user (called “showroom”) is created monthly. After the user places the first showroom order, he or she becomes a member. Once a user becomes an official member of ShoeDazzle, his/her billing information is kept on file and he/she is charged a fixed amount of money on the sixth day of each month. The user can skip the monthly payment. If users don’t see anything they want in the showroom, but want to see more styles, they can request a second selection of shoes, handbags, or jewelry sets. The system features integration with social networks (Facebook, Twitter, and YouTube).

The customer

The customer is a California-based company that offers fashion and style related services.

The need

They turned to Altoros to optimize the existing solution: enhance its performance, add new features, and test the existing functionality. The company also needed Altoros to share its knowledge and experience in Ruby on Rails development with the customer’s development team. Our team had to work both off- and onsite to meet the customer’s requirements.

The challenges

The solution has to store and process large- scale data: there are 4.5 million members registered, for each of them, the personal selection is created monthly. Showrooms are created on one and the same date for all users. This increases the number of visitors greatly, which causes enormous database loads and affects the overall performance. Our team had to work with the existing database architecture. That is why the number of solutions we could offer to solve the performance issue was limited.

The solution

The team implemented the Object-Relational Mapping (ORM) approach with acceptance of its limitations to process database queries. Compared to traditional techniques of exchange between an object-oriented language and a relational database, ORM reduces the amount of code that needs to be written. Still, ORM cannot always be used to process complex, database-specific queries. That is why we use ORM to process up to 80% of simple database queries, the rest of the queries that are more complicated containing 4-5 tables are processed with MySQL. This allows us to efficiently use both ORM and traditional MySQL techniques to optimize the performance.

The outcome

The performance of the solution has increased greatly. Our team continues to work with the customer onsite sharing experience and knowledge in Ruby on Rails development. Altoros implemented a number of software engineering methodologies (SCRUM, continuous integration) to optimize the development processes and collaboration between our teams.

Technology stack

Server platform

Cloud-based servers

Programming languages

Ruby, JavaScript


Ruby on Rails, jQuery, rSpec



Client Platform/Application Server

IE v.6+, Firefox v.3+, Safari, Chrome

Seeking a solution like this?
Contact us and get a quote within 24 hours

Alex Tsimashenka
Business Development Director
+1 (650) 419-3379