Inspiration
Our families tend to trade cars a lot, and all too frequently, we end up on kijiji spending hours searching for the best car deals. We wanted to build a tool that would help save us time while searching for cars.
What it does
Bang 4 Buck is a browser extension tool that allows you to search for the best deals on our favourite second hand marketplace -- Kijiji. In order to search for deals, you navigate to the Kijiji website, and search for the car you are looking for. Optionally, you can include any filters you want, such as price range, vehicle model, kilometer range etc.. When you have selected all the filters, you open up Bang 4 Buck extension tool, and hit "Find Deals". This will return to you all the best deals for your given filter, which you can navigate through by hitting "Next" or "Previous" to redirect you to the ad for that vehicle.
How we built it
We used JS, HTML, CSS for the chrome extension popup window in order to interact with different parts of the browser and make HTTP requests. The chrome extension sends a url for the first webpage of vehicle results you are filtering for over HTTP to a backend server. We used Flask web server in order to handle incoming HTTP requests from the browser extension. The Flask server used aiohttp in order to make many asynchronous HTTP requests to many pages for the given vehicle filter. Once all the data had been scraped from each page, we collected necessary data from each vehicle ad such as, vehicle year, total kilometers driven, and the cost. We could then use the year, and kilometers driven to calculate a "life left score", and divide this by the cost of the vehicle to calculate a final score for the vehicle. These would be sorted from highest to lowest, and the corresponding urls would be sent back to the chrome extension, and saved in cache so the user could navigate through the urls and see the best deals.
Challenges we ran into
We had never developed a chrome extension, and some of the nuances with chrome extensions were not quite as similar to vanilla HTML CSS and JS as we initially thought. Additionally, making many requests from the web server to scrape information from Kijiji was initally very slow, which we improved by threading the HTTP requests
Accomplishments that we're proud of
This is a tool that is genuinely useful for us and our families so we are glad that we were able to build something during the hackathon that will be useful, and not thrown away the next day
What we learned
How to build chrome extensions, how to use Flask, and how to make a lot of threaded HTTP requests
What's next for Bang 4 Buck
We want to implement sentiment analysis on the description for each of the vehicles. This would implement a neural network to look for keywords to give a better indication of the lifetime left for the car, which could give us more accurate results.
Log in or sign up for Devpost to join the conversation.