Inspiration
Our team was inspired to create this project because we noticed an underlying issue today that many people face these days; with the increasing complexity of online shopping, how do you make sure that when you’re buying a product you’re getting the best possible deal to get online? How do I find the cheapest option?. Recognizing the need to simplify the process of finding the best prices for products across various retailers, our team set out to develop a price tracker that checks prices from multiple sources, and lists out the cheapest options and where you can buy it from. What sets this project apart is the integration of computer vision technology, allowing users to search for products by showing images, making it more intuitive and user-friendly. This way, even if the user may not know what the product is exactly, they can use the computer vision model to find an appropriate comparison. We wanted to empower consumers to make informed decisions, save time, and money. Moreover, this project serves as an opportunity for me to learn and apply various skills, including web scraping and computer vision.
What it does
Our project uses web scraping to locate the cheapest prices for a given query, and displays: a table of each product: the vendor they're sold from: their price: a link to buy the product. The table is ordered from cheapest to most expensive to streamline the experience for the user. The user can input the query manually, or use a computer vision model that detects any visible objects in the camera and automatically selects a query. The model is trained from the google cloud. The user is able to filter which specific vendor they want to buy from.
How we built it
For the web scraping, we used Python and the libraries BeautifulSoup. We used a dictionary that organised the product information neatly, and then used the pandas library to create a dataframe that consolidated the information into a neat table. For the computer vision aspect, we used the OpenCV library.
Challenges we ran into
There were some annoyances with the web scraping in which extracting the information for certain product details, like the product url took time as it happened to be in a separate html directory, meaning that we had to accommodate the code for that single edge case. There was also a bug in which for some reason the html.parser did not tokenize the information in the tag properly, resulting in errors that resulted in us needing to use the lxml parser. There was also a chance that the product had some missing product information, resulting in bugs in the dictionary. We decided to remove any products that had any missing product info to streamline the experience for the user.
We had some challenges integrating the dataframe table into the Taipy webpage, where it wouldn’t be properly displayed.
Accomplishments that we're proud of
Working on this project pushed us out of our comfort zone multiple times, and there are many new accomplishments that we are proud of. We learned how to use new technologies and frameworks, such as Google Cloud, OpenCV, and Taipy. Our project challenged our understanding of what we thought was possible, whether it be trying to understand the complexities of computer vision or sorting out the endless bugs and errors.
Ultimately, we believe that the only way we were able to succeed in creating our project was by working effectively as a team - always helping each other, keeping morale and spirit high, and splitting up tasks to optimize productivity. By distributing the workload, we were able to leverage our strengths while each learning new technologies. Most importantly, we worked together to help each other out and achieve more than we could have individually. Whenever we faced challenges or seemingly impossible errors, our teammates were there for us, helping us vent our frustration, giving new perspectives, and always keeping us motivated. At GoldenHacks 5.0, the saying “the journey is the destination” pays homage to the friendships and memories we made on the way.
What we learned
We learned how to incorporate libraries into python code. We used BeautifulSoup to learn how to scrape data from sites. We learned to use Taipei to create the web interface. We learned how to use OpenCV object detection. We learned to use Github in team environment: pulling, pushing, fetching, merging, branching.
What's next for Prices Petite
We want the user to be able to see the price history of each given product, as well as displaying images in the dataframe table. This would provide the user to better assess the value of the product and check if the price listed is actually a good deal or in fact a scam. We were quite close to achieving this but decided as a team to remove it for now as there were some bugs that we couldn’t solve in time. We want to use a Machine Learning model that's able to use the history of the product price to predict the future product price. This will give the user a recommendation of whether to buy a product or wait for a better deal. We want to integrate our app into a mobile app, as we feel that using the phone's camera would work nicely with the computer vision aspect. That way people would be able to quickly take a picture from the phone and get the cheapest prices for the product.
Log in or sign up for Devpost to join the conversation.