Un site de comparaison de panier de courses sur les différents sites de supermarché qui permet de trouver le panier le moins cher et de passer commande.
A comparison shopping website that aggregates products, compare them automatically and come up with the cheapest store.
I joined the team to help them both on the back end and the front end part of the site. This application uses the stack Ruby on Rails backed by a Mysql database, talking with the AngularJS via a Grape API.
On the public part of the site, I implemented the graphic remake and help on different features like the "closest shop interface" using the localization, Google Maps, and the list of shopping stores in France, The goal of the feature was to choose the closest stores to compare products from, via an intuitive interface.
On the admin panel, The most chalenging feature was to make the "matching products" algorithm. Crawlers are scrapping different API and stores without stopping, and with the volum of data retrieved, we had to automatically find the good matchs for a product in other stores and if not available, find the most accurate replacement. This is a key part of this kind of comparison sites, and I had to find the best algorithm depending on product's name, brand, size, number of items, colors, etc...
Une application qui permet d'analyser un même panier sur les différents magasins de drives (Auchan, Intermarché, Leclerc, etc...) et permet ainsi de faire ses courses et commander sur le magasin le moins cher près de chez soi.
Quand j'ai rejoint l'équipe, j'ai travaillé autant sur l'API back-end que sur le code front end.
J'ai eu plusieurs missions sur cette application. La première étant sur la partie visible/publique du site, j'ai implémenté entre autres la partie graphique qui permet de choisir les différents magasins de proximités. Basé sur Google Maps API, et sur la localisation de l'utilisateur, l'utilisateur peut choisir dans quels magasins nous allions comparer son panier de courses.
Ensuite, sur la partie backend, il a fallut implémenter un crawler qui agrégeaient les produits des différents supermarchés dans une base locale. A partir de là, Il a fallu construire l'algorithme de comparaison qui permet de retrouver le même produit dans les autres magasins. En effet, avec le volume de produits à traiter, il fallait faire quelque chose qui soit aussi automatisé et rapide. J'ai donc mis en place un workflow via Elastic Search, en se basant sur le nom, les marques, la taille, les quantités, etc... Cet algorithme a permis de traiter la majeure partie des produits mais certains restés sans équivalents car Elastic search donnait des résultats trop aléatoires. Dans ce cas, on a mis en place un traitement semi-automatisé, avec une interface rapide pour permettre à un humain de choisir le produit correspondant ou au moins un substitut.