Makes following your favorite websites a snap!
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Makes following your favorite websites a snap!

In a hurry? Go straight to the app.

Technologies used

Up2date is built on:

  • Python 3.4
  • Flask
  • Flask SQLAlchemy
  • BeautifulSoup 4
  • MySQL
  • Bootstrap

Too many websites to track?

Up2date was created to solve a problem I was facing: tracking multiple websites. There are over a dozen websites I love, but I don't always have the leisure to visit each one of them (if I can remember all of them, that is!). Wouldn't it be nice, I said to myself one day, if someone could comb through them and send me an email summary of just the stuff that matters? Bingo! Up2date was born.

Caveat: No solution is perfect, and Up2date is the same. The downside here is that adding a new website means examining its structure and adding a class to the system.

The app is running here.

Installation instructions

  • Paste the code in a directory of your choice.
  • Set up a virtual environment
  • Install the required pip packages from requirements.txt
  • Create having the following:
DATABASE_URI = 'mysql://user:pass@localhost/up2date'
APP_SECRET_KEY = 'Secret key here'
  • Finally, the script scraper/ needs to be set up as a cron job, respecting the virtualenv.
DB setup

The DB schema can be determined easily by looking into

Wish list

Up2date was coded in a passionate hurry, so it lacks many things that I'll be adding subsequently:

  • Have at least 50 important websites crawled daily.
  • Option of individual mail and digest.
  • Allowing users to set up different alert times.
  • Make the code base more object-oriented (now only the scraper part isn't object-oriented)