Web-Based Personal Styling
The solution is a Web engine that selects accessories (shoes, bags, etc.) for customers based on their preferences in style profiles. The new personal selection for each customer (called “showroom”) is created monthly.
After a user places the first showroom order, he or she becomes a member of ShoeDazzle. From this moment, their billing information is kept in a file and a fixed amount of money is charged on the sixth day of each month. If necessary, users can skip the monthly payment.
If users don’t see anything they want in the showroom, but would like 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 is a California-based company that offers fashion and style related services. 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 on site to meet the customer’s requirements.
The solution has to store and process large-scale data: there are 4.5 million registered members and a personal selection for each of them is created monthly on the same date. This greatly increases the number of visitors and causes enormous database overloads affecting the overall performance of the system.
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 team of Ruby on Rails developers implemented the Object-Relational Mapping (ORM) approach with all its limitations for processing 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. More complicated queries containing 4-5 tables are processed with MySQL. This enables us to efficiently use both ORM and traditional MySQL techniques to optimize the performance.
The performance of the solution has improved greatly. Our team continues to work with the customer on site sharing experience and knowledge in Ruby on Rails development. Altoros also implemented a number of software engineering methodologies (SCRUM, continuous integration) to optimize the development processes and collaboration between our teams.
Client Platform/Application Server
IE v.6+, Firefox v.3+, Safari, Chrome
Ruby on Rails, jQuery, rSpec