Kamajii: Program Definition

The Problem

Many of the services offered by Internet websites are very useful. Sites offer their users information on their bank accounts, grades, stocks, news, jobs, apartments and much more. This information is available on demand. For example, when a student wants to see if he got a new grade, he connects to his university's site.

Some sites also offer services that alert users when changes they are interested in occur. For example, services exist to send to cell-phones via SMS information on new grades and on new apartments. These services fill an important purpose. They allow people who do not wish to access sites on a daily basis know when something that matters to them changes. This is especially important now that more and more services are becoming web-based. However, the existing services have several problems:

1. Some of them cost money, which deters some people from using them.
2. Even the free services are not "free as in freedom": Their code is closed and users do not have the ability to change their behavior.
3. These services require users to register and provide their personal information to companies, who sometimes share this information with other companies, particularly with spammers.
4. The services are not generic. Each service is written for a different site, and to receive information on different sites one would have to register for all of them. There are many sites that could use such services but do not have them.

Our Solution

Kamajii will manage different sites using an extendible configuration language, sending users the relevant information directly to their cell-phones or emails.

Kamajii will support the following features (more details about these features will be given in the design):

GUI Based Configuration
Configuration will be saved in configuration files, which will be editable using a user-friendly GUI.

Site Definition Language
Kamajii will read site information from configuration files, which will be written in an extendible language: It will use a generic set of terms capable of describing login procedures, page entities to alert on, the format of the alert and more.

SSL Support
Kamajii will support both HTTP and HTTPS sites.

Cookie Support
Kamajii will support sending cookies to the sites as well as reading the Set-Cookie header and acting on it as a browser would.

Multiple Output Destinations
Kamajii will be capable of sending alerts using both e-mail and SMS. It will be modular enough to allow adding a new output destination easily.

Language
Kamajii will send notifications in English and in Hebrew. Additional languages will be added if necessary.

Multi Platform
Kamajii will work both on Linux and on Windows.

Multi User (optional)
It will be possible to run Kamajii on a web-server. Its configuration will be managed using CGI scripts run by the web-server. They will allow new users to add themselves in order to receive notifications on the web-sites they are interested in. This is useful for example for users who do not have a permanent Internet connection.

Recording Mechanism (optional)
Instead of learning the site definition language described above, the user of Kamajii will have an option to browse the site himself and record his actions. The configuration file will be generated for him automatically.

Alternative Solutions

Mobile Operator Services
All three major Israeli mobile operators provide some similar services to paying customers. Customers may select fields of interests from a predefined list, and receive SMS updates about these subjects. Available categories vary from news and stocks to weather updates.

Cellcom:
Orange:
Pelephone:

Web-Site Specific

Some web-sites offer users an option to receive updates via SMS or email about new information when it is added to the site.

For example:
Additionally, some programs were written to get information from specific web-sites. This information can be processed and piped into sms or email sending scripts. Of all alternatives, these are the only free, open-source ones.

For example:
Services for Multiple Web-Sites
Several services monitor web-sites and alert their users when the sites change. These services do not parse the sites, but update the user on any change. This can be useful for monitoring static sites that do not change often.

Links:

Kamajii