Sunday, April 15, 2007

Intern Section for ARROW Annual Report

In the first quarter of 2007, Aaron Surty joined ARROW as an intern sponsored by Human Rights Internet, a Canadian organization. Aaron was responsible for the transfer of ARROW's website to a free open-source solution. (www.arrow.org.my) The transfer has opened doors for ARROW to further their goals by using information communication technologies (ICT's) via the Internet. ARROW could potentially manage their networks in a centralized location by providing a sign-up page for people interested in receiving their email-newsletter or for subscribing to ARROW's for Change. ARROW can now gather intelligence about how people are currently using their website that could aid them in developing concrete indicators of how their goals are being met. ARROW can determine which geographic region people are viewing the website from, what pages people are going to and how long they stay on each. More advanced intelligence can be gathered such as determining the percentage of visitors that proceed to sign-up for ARROW's newsletter and where on the Internet visitors are coming from be it search engine, email or other websites.


By using open-source software, further development to the website's source code could take place. For example, the virtual catalog search engine could be combined with the website's search engine in order to direct people more frequently to the wealth of ARROW's virtual catalog. The search engine could also be used as an intelligence gathering tool by looking at the most common keyword's that are entered. Other forms of automated feedback could be implemented such as using polls, surveys and forms. In terms of overall aesthetics, ARROW could design several templates for the website and control which pages the template is applied to or independently choose to revert back to an older template without ever contacting a developer to apply the change. A staff login page has already been created so that any staff member could potentially add, edit or remove existing content in the website. For project management purposes, the staff member's name and creation date of new pages will be stored.


Joomla!, the software driving ARROW's website, was developed by a large group of international volunteers in 2005. Since then the community has grown to several hundred thousand members and is quickly becoming the standard for NGO's to base their websites on. Thousands of add-ons have been created by other developers that are not members of the core team and are readily available on their website. For example, one add-on will allow the ARROW staff to take periodic back-ups of their website so to not lose the legacy of the information stored on their website.


Aaron has acquired a wealth of information and experience during his internship with ARROW. The success of his work would not have been possible without the enormous amount of time ARROW has invested in him.

Thursday, April 12, 2007

Summary of my Work since My last post

1. Migrated Site from one webhosting company to another. (2 weeks)
2. Responded to people's website reviews.
3. Continued work on virtual catalog, improving search, integrating with Joomla as a component.
4. Improved site search by modifying already existing components.
5. Uploaded ARROW movie, Rita's memorial.
6. Uploaded Annual Report and changed the .PDF files.
7. Created .RSS feed for staff to think about.

Friday, March 30, 2007

Activity Workplan (part 2)

Goal:
To aid ARROW in furthering their website objectives with the website by providing personal transaction of website knowledge and gaining a better understanding of the issues that ARROW is trying to advocate. Facilitate growth of the website by learning how it could be useful for anyone that has a connection to promoting ARROW's goals.

Activities

1. Go live with website (deadline: needs to be determined)
  • obtain feedback from ARROW staff once the website has gone live
    • errors in the front-end?
    • desktop/browser compatibility
2. Encourage the use of google groups, google docs and google analytics as a method of project management for the website team
Google groups Introduction :

  • Establish what forums can be used for
    • activity google "malaysia joomla"
  • Access the google group
    • via email
    • via url

  • Posting messages on the google group
    • via email
    • via forum

  • Stopping the group from sending yourself emails
    • via email
    • via user settings

  • Sharing a document with people for editing

Google analytics Introduction:

  • have everyone that has already joined google groups, join google analytics
  • Obtain information from everyone about exactly what they would like to know about website performance and what their expectations are about gaining information about the website's performance

  • Provide a Powerpoint based presentation that shows how we can use information about website performance to better plan future development (this will require at least a month of data compiling by analytics website)

Yahoo Messenger and Skype

3. Modify the virtual catalog to make it more useful for people entering new records, people looking up books in the office, people looking up books out of the office.
  • integrate with joomla
  • modify the search based on look-up methods
  • redesign the database
  • Consult with Uma, Kim and Michelle to come up with a way to record the history of book look-up events in order to gain as much knowledge about how the virtual catalog is being used currently
  • provide a system for authorizing records before they are added to database
  • provide a method to have call number automatically added to a print out sheet
  • consult with staff to come up with a process that makes PDF's available for as many records as possible
  • provide a request form for people that found a record outside the office so that they could be emailed scanned materials
  • try to fix scanner

4. Mass mailer utility (deadline: april 1st 2007)
  • admin interface
    • select a target group (ie/ country, interest, experience, subscription status)
  • generate plain text/HTML template for different types of emails
  • run in background as a scheduled task
  • interface with other programs in website (such as calendar program, user login, private messaging)
  • provide a method for ARROW to obtain future feedback (ie/ update contact info., ask people for latest SRHR material)
  • provide statistics on mail sent (sending, waiting to be sent etc)

5. Calendar Program (deadline: april 1st 2007)
  • try to make useful for everyone in office
  • provide a way for anyone to upload an event that is related to anything ARROW staff thinks are suitable
  • provide a way for ARROW staff to authorize incoming events before they are added to calendar
  • target emails to people by interests or countries in advance
  • give option to creator of event as to how much time people should have before they are told about an event
  • give an option to people to indicate whether they 'plan' to attend event

6. Assisting in updating AFC contact database (deadline: to be decided)
  • send initial email to people asking them to
    • update their contact info as determined by critical fields
    • indicate whether they would like to be a part of mailing list
    • indicate whether they would like to subscribe (free / paid) to AFC

  • assist in other avenues for updating contact database as determined in AFC conact database meeting
    • go to website and try to find information there
    • send faxes to people (?)
    • call people
  • after other methods are completed send another email to new contacts that have not yet been contacted by email to establish connection this way

7. User management
  • provide a user sign-up page
  • start off by requiring people sign-up if they would like to subscribe to mailing list (ie/ part of AFC contact database)
  • require people to sign-up if they would like to add events to calendar

8. Try to learn as much about SRHR issues as possible in order to come up with ways to make website better for researching (from a functionality standpoint... ie/ future wiki pages)
  • come up with proposal for implementing wiki pages (Deadline: April 1st, 2007)
  • provide wiki program and aid in project management (Deadline: April 30th, 2007)

9. Write Documentation to aid future developers of my work as mentioned in activity workplan (part 1)


Sunday, March 25, 2007

List of differences in appearance between old site and new site

The following is a list I am beginning to compile of the differences in appearance between ARROW's old website and the new website that have occured during migration of the back-end.

1. Blinking Image on front page is now transitioning image.

2. Boxes are no longer around left menu-items.

3. Page's content titles have been changed. (Example: front page now has home) Very easy to turn off. Left on for continuity purposes.

4. RPD 2005 menu has been changed for continuity purposes (and to make easier for web master)

5. Bottom page credits changed. For example no longer belongs to windaq software.

6. Sizes different. For example virtual catalog records slightly larger.

7. Search site button on right sidebar different.

Wednesday, March 7, 2007

A response to Siva's request to be updated on Contact Database Work

We have begun updating the contact database starting last Monday.
I am finding that it takes on average fifteen minutes to half an hour to verify only one contact. The reason for this is that the majority of contacts in the database (without an email address) no longer can be reached by the phone number associated with them. Because of this, I have tried doing internet searches by name, region, address, organisation etc... the internet search usually takes anywhere from 10-20 minutes. Then I usually get a department or company number. This is where the bureaucracy starts. I have also sent emails to companies that I was not able to reach by telephone.

Out of the contacts I have begun looking up, there are a significant number that I have still not found yet.
I can only imagine how the difficulty of this task is going to escalate when we have a go at the overseas pool.

Since I started I have spent two mornings on the contact database. Sham has mentioned that I should place priorities on various things in my activity work plan.
*** Perhaps I could get more direction on this matter. ***

Shanta has also mentioned that it would be very helpful if we can get an emails out to those with emails ASAP. Since there is a fair number of contacts in the database with emails.
I want to hold this off because I am not completely confident in what I have created. I am still doing research on mass mailer software. I do believe that I will be able to provide the right solution eventually but it is going to take time.
The two things I am worried about is that -
1. There is no way of verifying whether an email was sent properly. So if something stops working, we will not have any way to tell who has been sent emails properly and who has not.
SOLUTION(A): The work around for this is to use the free mass emailer software provided with Joomla! Which means that you will have to go through a spreadsheet and update records manually. The reason for this is that there will be no way to make every email unique. Without being able to make every email unique I can not provide the link that searches for the contact in our already existing database.
2. The page loading time for the contact form is very long. There are two reasons for this. First off, I wanted people to be directed to ARROW's domain (www.arrow.org.my) when they clicked on the link. I don't have access to a database management system on ARROW's website, however, I did determine that the current server does run PHP fine. So I piped data from another domain (www.plebeianbuilder.com). A SOLUTION(B) for this is to wait for us to go live with the new website. (which should be very soon)

Secondly, the contact database is a mess. (pointing fingers) Perhaps to put it better, the contact database works if you want to filter one thing at a time, but was not designed to filter many things all at once. There are too many tables and they are not properly normalized (http://databases.about.com/od/specificproducts/a/3nf.htm) Because of this, in order to extract the proper information from the database I had to invoke about 10 different SQL queries in one script performing joins with many tables. I could probably spend an entire day on rearranging the tables.
If we follow through with SOLUTION(A) and SOLUTION(B) I just want to note again that the trade off is that if we get say 500 people filling out this form - somebody will have to enter this information manually back into the Member First Microsoft Access based database.
Another trade off is that people will not be able to see the information we have for them. Because of this - they may be tempted to leave fields blank. I could make every field mandatory and provide a check system to validate every field. But then people may not fill out the form at all (and we get nothing). Another problem with this is that we will not have any way to validate the information we have on them in our database.
I am sorry. I've tried my best to make myself clear. Perhaps we can discuss this further.
I also wanted to note that we are encountering a unique problem. Normally when magazines send out subscriptions their viewers are paying for them. Lets say Mary Doe paid 150 bucks / year to subscribe to Time Magazine. If she moves - SHE is going to make sure Time sends the copy to the new address. For us - if she moves - WE are responsible for finding her new address. Perhaps we can contact other NGO's that have the similar problem and see how they handle this? (Does anyone know anybody with the similar problem?)

Monday, March 5, 2007

Mass Mailer

After consulting with the ARROW staff and obtaining feedback about the objectives they envision for their website, I wrote another Activity Workplan (2) that should give idea of what work I will be doing in the following months.

I have been researching several different methods for creating a mass mailer for the ARROW website. By extending the com_letterman component that already exists as a joomla! component I will save time by not having to create a mass mailer from scratch and I will take advantage of the work that has been done to integrate this component within the Joomla! framework. The following modifications will be made :

Alter the send now option to include choice by country, interests, experience
-> should be able to send to multiple countries, interests, experience

Alter the mail sender to filter out specified users.

Add choice by country, interests, experience into table.
-> change data abstraction layer
-> change create table

Use a scheduled task to send mass email on particular date. (cron jobs??)

Use calendar to submit scheduled task.

Import information into database.

Another option I am looking at is integrating the mass mailer queue class from PEAR
into the Joomla! framework. PEAR does an excellent job of managing newsletters that must be sent by CRON jobs.

I am currently still learning more about the Joomla! framework.
I have to find out how to create new tables when installing a component/module into Joomla!
I still need to learn more about the data abstraction layer that Joomla! and use this intead of the data abstraction layer PEAR uses. (get DB or something like that) I might be easier to reverse engineer and rewrite the mailqueue class in Joomla!

I also need to learn more about the patTemplate system. Where should patTemplate be implemented under the model view control system.

I also need to learn how the mass mailer's use the MIME object and other functionality that I would need to build my mass mailer. I also need to decide whether it would be best to build this component from scratch, or just exctend the letterman or massmailer component.

Thursday, March 1, 2007

Software Development


I think everyone can profit by getting a glimpse at an overview of a software development cycle. In order for any project to be succesful it should contain (at least some) of these steps.


The following was taken from a Joomla! development manual.