Skip to content
This repository has been archived by the owner on Aug 30, 2019. It is now read-only.

kdeldycke/feed-tracking-tool

Repository files navigation

Feed Tracking Tool

Feed Tracking Tool (FTT) is a web-based RSS/Atom feed tracker running on Ruby on Rails. It lets multiple users define "trackers" to filter content provided by feeds. Matching content are aggregated and sent by mails to subscribed users.

Status

This project is no longer maintained and is quite outdated. Unless people are willing to contribute to this project and clean it up, it should be considered as an ugly legacy code base. So please be indulgent while looking at FTT code: it was the work of unexperienced RoR developers ! ;)

Features

  • Can track several formats of feed (Atom, RSS, ...)
  • Can track static pages
  • Trackers can be private or public
  • Each tracker has its own mailing frequency
  • Users are sourced from an LDAP directory

Technology

  • Framework: Ruby on Rails
  • Database: MySQL
  • Feed parsing: FeedTools
  • Mail transfer agent: MSMTP

Support

Ruby on Rails setup

  1. Install a Ruby on Rails development environment:

    $ apt-get install ruby rubygems
    

    Eventually register your HTTP proxy:

    $ export HTTP_PROXY='http://12.34.56.78:8080'
    

    Install all other libraries with gem:

    $ gem update --system
    $ gem install rails mysql feedtools ruby-net-ldap daemons slave feedalizer -y
    
  2. Get the list of local gems:

    $ gem query --local
    

    and check that the followings gems are installed:

    • actionmailer
    • actionpack
    • actionwebservice
    • activerecord
    • activesupport
    • builder
    • daemons
    • feedtools
    • rails
    • rake
    • ruby-net-ldap
    • slave
    • sources
    • uuidtools

    Some of them are Rails dependencies and as such are automatically installed. Those who are not can be installed with the following command:

    $ gem install <gem>
    
  3. Install the MySQL server:

    $ apt-get install mysql-server
    
  4. Install msmtp with your favorite package manager. Example:

    $ apt-get install msmtp
    
  5. Get a copy of FTT in your system web folder:

    $ git clone git@github.com:kdeldycke/feed-tracking-tool.git /var/www/
    
  6. Create a MySQL database and update the config/database.yml file accordingly:

    $ mysql -h localhost -u root --disable-pager -e "CREATE DATABASE IF NOT EXISTS FTT_development;"
    $ mysql -h localhost -u root --disable-pager -e "CREATE DATABASE IF NOT EXISTS FTT_test;"
    $ mysql -h localhost -u root --disable-pager -e "CREATE DATABASE IF NOT EXISTS FTT_production;"
    $ vi config/database.yml
    
  7. Update RoR version in the config/environnment.rb file to make it match the RoR version installed on your system:

    RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION
    

    To get the currently installed version of RoR, use this command:

    $ gem query --local rails
    
  8. Check that FTT is in production mode in config/database.yml by uncommenting the following line:

    # ENV['RAILS_ENV'] ||= 'production'
    
  9. Create all database tables:

    $ rake db:schema:load RAILS_ENV=production
    
  10. If your app is behind a proxy, don't forget to update the HTTP_PROXY_HOST and HTTP_PROXY_PORT constants in config/environnment.rb.

  11. Update the config/backgroundrb.yml with the following directive:

    :rail_env: production
    

Apache / FastCGI setup

  1. Install fcgid:

    $ apt-get install libapache2-mod-fcgid libfcgi-ruby1.8
    
  2. Activate the fcgid module:

    $ a2enmod fcgid
    $ /etc/init.d/apache2 restart
    
  3. In the public/.htaccess file, replace:

    AddHandler fastcgi-script .fcgi
    

    by:

    AddHandler fcgid-script .fcgi
    

    Also check that these rewrite rules are present in that file:

    RewriteEngine On
    RewriteBase /feed-tracking-tool
    
    RewriteRule ^$ index.html [QSA]
    RewriteRule ^([^.]+)$ $1.html [QSA]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
    
  4. Update the default Virtual Host from /etc/apache2/sites-available/default with these directives:

    <VirtualHost *>
      ServerAdmin webmaster@localhost
    
      DocumentRoot /var/www
      RewriteEngine On
    
      [...]
    
      Alias /images/ /var/www/feed-tracking-tool/public/images/
      RewriteCond %{REQUEST_URI} !^/feed-tracking-tool/public
      RewriteRule ^/feed-tracking-tool(/.*)?$   /feed-tracking-tool/public$1
      <Directory /var/www/feed-tracking-tool/public/>
        Options FollowSymLinks ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
    
    </VirtualHost>
    
  5. Active Apache rewrite mode:

    $ cd /etc/apache2/mods-enabled/
    $ ln -s ../mods-available/rewrite.load
    
  6. Fix app's rights to let Apache handle them:

    $ chown www-data:root -R /var/www/feed-tracking-tool
    
  7. Fix some others file rights and ownership:

    $ cd /var/www/feed-tracking-tool
    $ chmod 755 public
    $ chmod 755 public/dispatch.fcgi
    $ chmod -R 775 log
    $ chmod -R 775 tmp
    
  8. Restart Apache:

    $ /etc/init.d/apache2 restart
    
  9. Restart FTT's background tasks handler:

    $ ruby script/backgroundrb stop
    $ ruby script/backgroundrb start
    
  10. Goto http://my-domain.com/feed-tracking-tool.

Roadmap

  • 0.11.0
    • Update all this legacy code to latest Ruby, Ruby on Rails and third-party libraries
    • Update and simplify installation procedure

TODO-list

  • Report here all TODO's found in the code

Changelog

  • 0.10.1-trunk (2011-03-21)

    • First Open-source public release
  • 0.10.0 (2007-09-21)

  • 0.9.1 (2007-09-12)

  • 0.9.0 (2007-09-12)

  • 0.8.3 (2007-09-07)

  • 0.8.2 (2007-09-06)

  • 0.8.1 (2007-09-03)

  • 0.8 (2007-08-31)

  • 0.7 (2007-08-30)

  • 0.6 (2007-08-24)

  • 0.5 (2007-08-23)

  • 0.4.1 (2007-08-21)

  • 0.0 (2007-07-17)

    • First HTML mockup

Contributors

History

This tool was developed within Uperto, the Open-Source business unit of the Devoteam group, for its internal needs.

The project had an ancestor written in 2006 that was based on Pylons (Python framework). This was in a prototype stage and was barely working. Iterating over the abandoned Pylons code base was considered a waste of time. So in summer 2007, it was decided to rewrite this application from scratch.

As Quentin was available and already played with Ruby on Rails, he was asked to create the initial code base. Kevin joined the project early as he was eager to experiment with Ruby on Rails.

This app was known under different names before settling to FTT. Those includes:

  • VTP, a French acronym for "Veille Technologique Passive"; and
  • OVT, another French acronym for "Outil de Veille Technologique".

This explain why you may find these two acronyms and some other French comments in FTT's legacy code base.

At the end FTT was essentially a test project to explore and play with Ruby on Rails. It was never deployed in production and was never used for Uperto's internal needs.

After roting for more than 3 years in Uperto's backups, and representing absolutely no business value in itself, Kevin decided in 2011 to release code (with Uperto's approval) under an open-source license. The initial intention of this open-source release was to share back knowledge and code with the community.

License

Content of this repository is licensed under the GNU General Public License v2 or later +(GPLv2+).