PHP, Yii Framework, PostgreSQL, MongoDB, Redis, Bootstrap
Web development, Cloud based solutions
Undoubtedly, this was our biggest thing, big project for a big company. The client, Inventive Retail Group has 300 points of sales in 36 cities across Russia. Creating customer loyalty system for business that large from the ground up was quite a challenge for us. However, early in 2014 we started only with Nike. New system allowed customers to collect points on their loyalty card. As the number of points reached 1,000, they would be informed by SMS and presented with prepaid Visa card. At the initial stage we used PHP, Yii, MySQL, and Bootstrap. Our work on Nike proved quite successful. We saw it most clearly a year later after we’ve launched the new system - statistics were impressive with 80,000 new card holders.
To achieve that impressive result, we upgraded the new system and integrated it with all other shop networks of the company, such as re:store, Lego, Sony Centre, Samsung, PreNatal, Uno de 50, and Street Beat. Upgraded system was supposed to work as following: card terminal would read the unique card number, request number of points awarded from automated database, and then get back with this data. To make that possible, we had to transfer data from old database including 2 mln. customers to the new one and perform database replication and partition. Personal data management is a delicate thing indeed, so we had to be very careful, especially by such large numbers. However, we managed to make it flawlessly. Mass messaging with this database wasn’t a problem either.
As long as there were 300 shops in the network, we provided the system with the capacity of handling requests from 300 terminals simultaneously. Also, we created analytics on Python.Early in 2015 our work was finished. To put it in a nutshell, it took us only a year to create a brand new system from scratch, covering 2 mln. customers from old databases and 300 terminals. By upgrading the system we had to move from mySQL to postgreSQL and add mongoDB and Redis to our toolbox. We also had to take to some technologies and methodologies we’ve never used so actively before, such as continuous integration, pseudo-multithreading, automated functional testing, and load testing.