INFO Project Software Toolkit

Software and Procedures for Hosting and Managing
Web Sites, Databases, E-mail Lists, Search Engines, Blogs

The INFO Project employs a broad range of IT products and processes to host its websites and databases and develop and manage other web-based features. Overall, INFO has a strong commitment to using open source software when it is the best available product since it enables us to share our work more easily with others interested in using the same software for like purposes

Open source IT products offers a low-cost way for nonprofit organizations to incorporate useful IT products into their work. This INFO Project Toolkit is a list of software used by INFO, most of it freely available for downloading on the Web. The Toolkit also includes information on other non open-source software used by INFO for some products.   We have also included links to example and explanations of how INFO uses a particular product and where to download it on the Web or get more information.

Contents:

For information on other open source software not mentioned here, visit these sites:

Organizations who want to set up online databases can use MySQL in the same way that INFO has done with One Source or use an open source integrated library system product such as those listed below:

For additional information on INFO software, or if you would like to discuss using any of the software that INFO is using, please contact us at webmaster@infoforhealth.org.

Development Cycle

INFO software development includes four distinct environments in which new features, products and services are first developed, then tested internally, then released for user acceptance testing, and finally pushed to production. The diagram below shows some of the software that is used and how it is related to INFO web sites and database.

INFO Architecture

INFO uses the following open source software in all four environments:
 

Web site and public databases

1. Linux Operating System (OS) http://www.linux.org/
Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world. The source code for Linux is freely available to anyone online. INFO uses the Linux OS for all its web servers.

 
Additional resources on Linux
  
2. Servers
  • INFO has three types of web servers:
  • Database server (DBMS) which runs MySQL
  • Web server (HTTPD) which runs Apache
  • Application server which runs J2EE - JBOSS and Zope
  
3. Languages used by INFO
  • Java / JSP: http://java.sun.com/products/jsp/ 
    JavaServer Pages (JSP) technology provides a simplified, fast way to create dynamic web content, allowing INFO to develop web-based applications that are server- and platform-independent. INFO uses Java/JSP for indexing static files (HTML, PDF, MSWord, PowerPoint, etc) using Lucene and JSP to provide a graphical user interface for searching those indices. See the INFO Web Site search at http://www.infoforhealth.org/search/legacy.php.
  • PHP: http://www.php.net/
    PHP is an open source scripting language suited for Web development that can be embedded into HTML. INFO uses PHP for the www.infoforhealth.org Web site. PHP is used whenever dynamic content from the MySQL database is displayed. PHP is also used to search through the hundreds of thousands of stored INFO resources and provide a coherent, well-organized means of navigating through search results.
  • Perl: http://www.perl.org/
    Perl is a cross platform open source programming language used by INFO to handle html forms like the “email this page” form used to send Population Reports to colleagues. Similar in function to PHP, Perl is also used to enhance and speed up several INFO processes for which it is more suited than PHP.  Perl is used to produce Excel reports of dead urls in both static files and OneSource database.

  • Python: http://www.python.org/
    Python is a dynamic, open source, object oriented programming language that runs on a range of operating systems. INFO uses Python to power its CMS (Content Management System), allowing editors to update INFO site information with minimal effort and involvement. INFO uses Python/Zope to power the SHARE portal, which includes a content management system that permits non-technical users to generate HTML content, a document library, a full text searchable catalog of site content (word, pdf, excel, html), an event calendar, and an online field data reporting and dissemination tool (RDMA Reports). Python is also used to run various Mailman listservs (See also Mailman).
  • AJAX: http://www.ajax.org/
    AJAX stands for asynchronous Javascript and XML. AJAX is used for creating interactive web applications. INFO uses AJAX for the Browse Topics page on www.infoforhealth.org. Ajax allows the user to expand and collapse the topics to drill down through the hierarchy changing the content on the page without the entire page reloading. This makes the delivery of lots of content much quicker than without AJAX. Searching hundreds of thousands of resources comes at a price and can heavily tax the INFO system. AJAX is also used to offset processing of secondary search features (including search filters) to provide the user with search results as quickly as possible.
4. Concurrent Versions System (CVS) – Configuration Management
http://www.nongnu.org/cvs/
CVS is an open source version control system that keeps track of work and changes in the implementation of a software project. It allows several developers to collaborate, and is an important component of Source Configuration Management (SCM). Users can record the history of sources files, and documents. The source code is freely available under the GNU General Public License.
 
 
5. MySQL
http://www.mysql.org/
MySQL is a multithreaded, multi-user SQL database management system. Although it is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, various versions can be downloaded for free on the web site. The company develops and maintains the system, sells support and service contracts, and proprietary-licensed copies of MySQL. INFO uses MySQL for its One Source and Photoshare databases.
 
 
6. Zope
http://www.zope.org/
Zope is an open source application server for building content management systems, intranets, portals, and custom applications. It features a transactional object database which can store not only content and custom data, but also dynamic HTML templates, scripts, a search engine, and relational database (RDBMS) connections and code. It features a strong through-the-web development model, allowing update of web sites from anywhere in the world. Zope also features a tightly integrated security model built around the concept of safe delegation of control. 
 
Zope's security architecture allows INFO to give control of some parts of a web site, for example the Interagency Youth Working Group site, to other organizations. There are numerous plug-in components to extend the basic set of site building tools, including new content objects; relational database and other external data source connectors; advanced content management tools; and full applications for e-commerce, content and document management, or bug and issue tracking. Zope includes its own HTTP, FTP, WebDAV, and XML-RPC serving capabilities, but can also be used with the Apache or other web servers.  INFO uses Zope for the content management systems behind all INFO-managed web sites.
 
 
7. JBoss
http://www.jboss.com or http://www.jboss.org
INFO uses JBoss open source Java Enterprise Middleware on its development/testing and application servers. Enterprise Middleware is software that sits between application code and the operating system to provide services such as persistence, transactions, messaging and distribution across a network
 
 
8. J2EE
http://www.sun.com/software/communitysource/j2ee/ 
Short for Java 2 Platform Enterprise Edition. J2EE is a platform-independent, Java-centric environment from Sun for developing, building and deploying Web-based enterprise applications online. The J2EE platform consists of a set of services, APIs, and protocols that provide the functionality for developing multitiered, Web-based applications. Sun has made the source code available as part of its Community Source Licensing Program.
 
 
9. Ant - Build Management
http://ant.apache.org/
Apache Ant is a Java-based open source build tool from the Apache Software Foundation. Instead of a using model where it is extended with shell-based commands, Ant is extended using Java classes. Instead of writing shell commands, the configuration files are XML-based, calling out a target tree where various tasks get executed. Each task is run by an object that implements a particular Task interface.
 
 
10. Apache web server
http://www.apache.org/
The Apache HTTP Server is an open-source HTTP server for modern operating systems including UNIX and Windows NT. It is a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards. Apache has been the most popular web server on the Internet since April 1996.
 
 

Indexing & Searching Web and Database Content

 
1. GOOGLE Site Search
http://www.google.com/services/search.html#utm_medium=et&utm_source=bizsols&utm_campaign=web_site_search
INFO uses the hosted Google site search for RHGateway and some other sites.  INFO provides Google with a list of the sites to search and Google uses the index that it has already built. Results are delivered instantly. Developers can also give Google keywords to use to weight the search results to the most relevant content.  The Google search interface is also familiar to most users.  Google gives developers a choice of various search forms to use on pages and developers can apply their own styles to the results. For RHGateway INFO is pointing at 140 sites, all of which are indexed by Google - http://www.infoforhealth.org/RHGateway/index.shtml. Google is also able to index some database content.
 
Password protected sites cannot use the hosted service but developers can purchase Google mini which is also able to index databases.  The basic Google mini can index up to 50,000 documents for $1,995.  Hardware, software and a year of support are included.
 
 
2. LUCENE
http://lucene.apache.org/java/docs/
INFO uses Lucene to index and search static website content.  Lucene is a full featured text search engine library written in Java and is suitable for any application that requires full-text search capabilities. INFO developed custom indexes to index the static content on our websites; this indexing supports many file format including PDF, MS Word, PPT, and of course HTML. To search our indices, we developed custom search applications packaged in a Web Application Archive (WAR) and deployed to our J2EE application server. The advantage of this approach is that it gives total control over both indexing and searching. We can customize the indexer and the search to retrieve results in different formats/styles based on the website. The disadvantage is the development effort and maintenance required for a custom solution. INFO site search page: http://www.infoforhealth.org/search/legacy.php
 
 
3. Sphinx
http://www.sphinxsearch.com/
To enable full text search capabilities in our flagship database (OneSource), INFO relies on another free, open source product named Sphnix. Sphinx allows us to connect to our database and index retrieved text. These indices are merged with results from other searches to enable the rich search capabilities we have in OneSource. 
 
 

INFO Database Content Creation

All INFO database content (Photoshare, POPLINE, M/MC materials, Web links) is created in internal databases using Inmagic Content Server. POPLINE public database at www.popline.org also uses Content Server and another Inmagic product called WebPublisher PRO. These products are not open source, however they allow INFO to add and modify content more efficiently than a web-based, open source database entry system would allow. 
 
1. Inmagic Content Server & WebPublisher PRO
http://inmagic.com/
Inmagic Content Server (C/S) Textbase v1.3 and Web Publisher Pro v1.3 are run in a Windows environment and are used for the production of all of INFO’s content databases.  C/S Textbase provides a user friendly customizable off-the-shelf solution for data entry, editing and importing.  Approved records are promoted to public status and made available through POPLINE on the Web using Web Publisher Pro.  Content Server includes a Windows client, CS/TextWorks, that allows users to create and modify databases while using SQL Server as its data store. 
 
Web Publisher Pro is Web Services enabled which allows INFO to use SOAP (Simple Object Access Protocol) to move records from the C/S databases into the MySQL Photoshare and OneSource databases using scripts that run at regular intervals automatically.
 
INFO has been using Inmagic products for many years and values them highly for their flexibility, ease of use and deployment, and minimal need for information technology support. They are based on Microsoft® SQL Server™ and .NET technology that utilizes Web services, Inmagic applications can be integrated with and interoperate within an organization’s overall information technology infrastructure.    
 
2. Languages used include:
  • JavaScript (used with Inmagic Content Server in data entry and web-based forms)
  • C+ (custom program developed to add keywords & keyword synonyms to POPLINE records)
 

INFO Publications Dissemination

1. Server - SQL Server
http://www.microsoft.com/sql/
SQL is a relational database management system (RDBMS) produced by Microsoft. Its primary query language is Transact-SQL, an implementation of the ANSI/ISO standard Structured Query Language (SQL) used by both Microsoft and Sybase. INFO uses SQL to host its database of 125,000 clients, 20,000 organizations, and inventory 1,500 products with combined quantities in excess of one million. SQL is not open source.
 
2. Access
http://office.microsoft.com/en-us/access/
Access is a relational database management system from Microsoft which combines the relational Microsoft Jet Database Engine with a graphical user interface. Access can use data stored in Access/Jet, Microsoft SQL Server, Oracle, or any ODBC-compliant data container. INFO developed a customized application in Access, called IPOD that is used to disseminate its publications and document and photo delivery from POPLINE and One Source. The application can deliver electronic documents and photos automatically via e-mail or generate mailing labels for sending print documents.
 

Listservers and E-mail Newsletters

 Mailman
http://www.gnu.org/software/mailman/index.html
Mailman is free open source software for managing electronic mail discussion and e-newsletter lists. Mailman is integrated with the web, making it easy for users to manage their accounts and for list owners to administer their lists. Mailman supports built-in archiving, automatic bounce processing, content filtering, digest delivery, spam filters, and more. INFO uses Mailman for all of its electronic newsletters except The Pop Reporter.  The Pop Reporter uses custom built software. Newsletters that use Mailman include:
           

Blogs

Wordpress
http://wordpress.org/
WordPress is an open source publishing platform particularly suited to blogs. It can also be used to create small-to-medium sized Web sites. It allows us to add pages through a simple form and update content. INFO uses WordPress for the general INFO blog and for the Photoshare blog.

 

RSS Feeds & Pop Reporter Headline Sharing

INFO delivers several different types of RSS feeds from POPLINE and One Source.
 
1. POPLINE RSS
POPLINE provides 12 different RSS feeds, including one for all new materials and eleven other topic-oriented feeds. Popline RSS feeds are created in Inmagic Content Server.  A database query is made, requesting XML output, the XML is formatted for RSS using XSLT, the feed is then submitted to Feedburner, http://www.feedburner.com/fb/a/home which provides tools for publishing, promoting, and reporting on the feeds. See all POPLINE feeds at http://db.jhuccp.org/ics-wpd/popweb/poplinerss.htm.,
 
2. One Source RSS
One Source has a general RSS Feed for new materials added to One Source at http://www.infoforhealth.org/rss.php.   In addition, One Source users can create their own individual RSS feeds for specific searches by selecting the option “Subscribe to RSS Feed” in the One Source search results. They will receive a feed each time new materials on the selected topic are added to One Source.
 
3. Pop Reporter Headline Sharing
Other organizations with web sites can also register to have news or research headlines from 17 different topics areas displayed on their own Web sites from the latest weekly issue of The Pop Reporter. For an example, see the Interagency Youth Working Group home page at www.youthwg.org. This service is part of the custom built software that is used to manage The Pop Reporter. 
 

Online tutorials

Adobe Captivate
http://www.adobe.com/products/captivate/  (not open source)
Captivate software enables anyone to quickly create Web tutorials that can be easily exported as flash movies. INFO created tutorials on POPLINE and how to register for One Source using Captivate.
 
 

INFO Public Web Sites

  1. INFO main site: http://www.infoforhealth.org/
  2. POPLINE: http://www.popline.org/
  3. HIV/AIDS and Sexual and Reproductive Health Integration: http://www.hivandsrh.org/
  4. Ending Violence against Women: http://www.endvaw.org/
  5. Photoshare: http://www.photoshare.org/
  6. Injectables Toolkit: http://www.injectablestoolkit.org
  7. IUD Toolkit: http://www.iudtoolkit.org/
  8. MAQ Web site: http://www.maqweb.org/
  9. Population Reports: http://www.populationsreports.org/
  10. Reproductive Health Gateway: http://www.rhgateway.org/
  11. SHARE Portal: http://www.sharegmr.org/
  12. The Pop Reporter: http://prds.infoforhealth.org/
  13. Condoms: Your Questions Answered: http://www.infoforhealth.org/condoms/
  14. Interagency Youth Working Group: http://www.youthwg.org/
  15. Post Abortion Care Toolkit: http://www.postabortioncare.org/
  16. Global Family Planning Handbook: http://www.fphandbook.org/
  17. HIPNet: http://www.hipnet.org
  18. Implants Toolkit: www.implantstoolkit.org