EZ Price Alerts: A Django app for tracking Amazon prices
A friend and I started working on this project a few weeks ago as we were talking about the holidays and how useful it would be to build an app to track prices of products on Amazon.com. We know Amazon is very competitive with their pricing and their prices for certain products could change many times a day to match competitors'. Having an app to send you alerts when a product reaches your desired price could really save you money especially around the shopping season.
This is not a new idea, by the way, there are tons of other sites that do the same thing. Here's a few of them:
- http://camelcamelcamel.com/
- https://thetracktor.com/
- http://onlinepricealert.com/
- http://zingsale.com/
- http://www.unimerc.com/
- https://keepa.com/
- http://www.pricedaemon.com
Even with all these other sites, we decided to go ahead and build another one as we thought it would be a fun little side project to work on as we can both use it, it will allow us to try out some of the new features added in Django 1.7, and experiment with SEO and marketing. Of course, there's also the potential of making a little bit of money through their
affiliate program.
For the design, we decided to go really simple as we wanted to get an MVP out quickly and we're both more backend developers. We basically took the most basic Bootstrap starter template and built from there using mostly the default CSS provided in Bootstrap 3. The funny thing is, we actually ended up really liking this very simple look and layout. Even a caveman can figure out how to use the site.
For the email alerts, we're currently just using the "poor man's queue," a cron job scheduled every 15 minutes to scan the alert table and makes calls to the Amazon API to get the latest prices. Eventually, if the project takes off and we're at a point that our traffic is consistently growing, we would switch to using Celery and Redis (or RabbitMQ) using multiple queues with different priorities as Amazon limits API calls to 1 per second (they increase the limit as you provide them with more referrals).
For the email template, we wanted something responsive so we just looked for a Bootstrap email template online.
We also wanted to provide our users with the product's price history to help them decide what to set the target price to. Currently, we're just listing the last 10 price changes, we'll put up a line chart eventually.
As you can see, prices can change multiple times a day and they could be pretty significant changes.
We still have a bunch of stuff to work on but the site is fully functional now. The next priority for us is allowing our users to sign up for an account so they can manage their alerts.
Check it out at
https://www.ezpricealerts.com.
Tags: python, django, tech, software development