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.

Share this project:

Updates