There is going to be a server side and a web client side of things.
On the server side I need to:
- Query the database for the next feed to read and when.
- Schedule the read.
- Read the feed.
- Store the feed so that there are no duplicates. (what to do with updated records?)
- Update the record to show when the feed was read.
On the web client side I need to:
- Create a login system to keep people's feeds separate.
- Create a form that allows people to manage (add, remove, and organize) what feeds they are subscribed to.
- Create a form that allows people to view their feeds. (I'll add marking records as read later.)
One of the beautiful things about this system is that if there are a million people all subscribed to the same feed then you only have to download that feed once and store it once. The server side will scale pretty easily.
The client side is a different story. With each person having a different set of unread records, the more users, the more power is going to be needed to track everything.
Today, on the server side I am looking at the basics of doing the server side actions:
Using libcurl to read an rss file.
Example code here: http://curl.haxx.se/libcurl/c/simple.html
More examples here: http://curl.haxx.se/libcurl/c/example.html
Using libxml2 to parse the xml in the rss file.
The web site is here: http://www.xmlsoft.org/
Example code is here: http://www.xmlsoft.org/examples/index.html
Store the records in mysql.
Example code is here: http://zetcode.com/db/mysqlc/