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: