HomePortfolioWeb-Based Personal Styling

Web-Based Personal Styling

JavaScript
Ruby
Ruby on Rails
Retail

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.

Web-Based Personal Styling

About the project

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 need

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 challenge

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 solution

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 outcome

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.

Technology stack

Server platform

Cloud-based servers

Client platforms/Application servers

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

Programming languages

Ruby, JavaScript

Technologies

Ruby on Rails, jQuery, rSpec

Database

MySQL

/
01
02

Want to develop something similar?

Preloader
Ryan Meharg

Ryan Meharg

Technical Director

ryan.m@altoros.com650 265-2266

4900 Hopyard Rd. Suite 100 Pleasanton, CA 94588